Image default
Máy Tính

Cách Tùy Chỉnh Reddit Mặc Định “Best” Sang “Mới Nhất” Với Tampermonkey

Những phiền toái nhỏ trên các trang web yêu thích có thể tích tụ dần theo thời gian và gây ra sự khó chịu lớn. Đối với nhiều người dùng Reddit, việc nền tảng này mặc định sắp xếp các bài đăng theo chế độ “Best” (Tốt nhất) là một trong số đó. May mắn thay, với một chút quyết tâm và một tiện ích mở rộng mạnh mẽ, bạn hoàn toàn có thể khắc phục hầu hết các vấn đề tương tự, cá nhân hóa trải nghiệm duyệt web của mình.

Vấn đề với trải nghiệm Reddit mặc định

Reddit đã có một sự thay đổi giao diện đáng kể trong thời gian gần đây. Nhìn chung, phiên bản “mới” này không tệ như nhiều người lo ngại và giao diện người dùng (UI) khá tốt ở nhiều khía cạnh. Tuy nhiên, một vấn đề vẫn gây khó chịu đáng kể: thứ tự bài đăng mặc định.

Giao diện trang chủ Reddit với các bài đăng được sắp xếp theo chế độ ‘Best’ mặc định
Giao diện trang chủ Reddit với các bài đăng được sắp xếp theo chế độ 'Best' mặc địnhGiao diện trang chủ Reddit với các bài đăng được sắp xếp theo chế độ 'Best' mặc định

Trên cả trang chủ và các feed subreddit riêng lẻ, các bài đăng thường được hiển thị theo thứ tự “Best”. Đây là một cài đặt không rõ ràng, và giống như thuật toán “dành cho bạn” trên X (trước đây là Twitter) hay trang chủ YouTube, nó hoạt động chủ yếu để quảng bá nội dung hơn là phục vụ một nhu cầu cụ thể của người dùng. Không ít lần, bạn có thể bị thu hút bởi tiêu đề của một bài đăng, chỉ để rồi cảm thấy khó chịu khi nhận ra bài đó đã được đăng từ vài tuần hoặc thậm chí vài tháng trước.

Ngay cả khi bạn nhận ra vấn đề, việc chuyển từ “Best” sang “New” (Mới nhất) cũng mất tới hai lần nhấp chuột, làm gián đoạn luồng trải nghiệm của bạn. Nhưng nhờ một chút nỗ lực, vấn đề này sẽ không còn là nỗi bận tâm nữa.

Giải pháp: Tùy chỉnh với JavaScript và tiện ích mở rộng

Nếu bạn có chút kiến thức về JavaScript, hẳn bạn đã nghĩ đến cách giải quyết vấn đề này. Sử dụng ngôn ngữ lập trình này, bạn có thể thêm chức năng mới cho một trang web, sửa đổi màu sắc và phông chữ, hoặc thậm chí loại bỏ nội dung bạn không quan tâm. Để những thay đổi này hiển thị cho tất cả mọi người, bạn cần truy cập vào backend của trang web, nhưng bạn có thể sử dụng trình duyệt của mình để thực hiện những thay đổi tương tự cho trải nghiệm cá nhân của mình trên bất kỳ trang web nào.

Chìa khóa ở đây là một tiện ích mở rộng trình duyệt cho phép bạn chạy JavaScript của riêng mình trên các trang web cụ thể. Một trong những lựa chọn hàng đầu cho Chrome là tiện ích Tampermonkey.

Trang tiện ích mở rộng Tampermonkey trên Chrome Web Store, công cụ để chạy script tùy chỉnh
Trang tiện ích mở rộng Tampermonkey trên Chrome Web Store, công cụ để chạy script tùy chỉnhTrang tiện ích mở rộng Tampermonkey trên Chrome Web Store, công cụ để chạy script tùy chỉnh

Hầu hết các trình duyệt lớn đều có tính năng này tích hợp sẵn hoặc có sẵn thông qua tiện ích mở rộng. Trên thực tế, Tampermonkey có sẵn cho tất cả các trình duyệt chính—Chrome, Edge, Safari và Firefox—vì vậy đây là lựa chọn được khuyến nghị hàng đầu.

Bạn có thể bắt đầu bằng cách tải Tampermonkey cho trình duyệt của mình; ví dụ, phiên bản Chrome có sẵn trên Chrome Web Store.

Cài đặt và tạo script đầu tiên

Sau khi đã thêm và kích hoạt tiện ích mở rộng, hãy sử dụng menu của nó để chọn “Create a new script” (Tạo script mới). Bạn sẽ thấy một giao diện tương tự như sau:

Giao diện trình chỉnh sửa script mới trong Tampermonkey, hiển thị mã JavaScript mẫu
Giao diện trình chỉnh sửa script mới trong Tampermonkey, hiển thị mã JavaScript mẫuGiao diện trình chỉnh sửa script mới trong Tampermonkey, hiển thị mã JavaScript mẫu

Có rất nhiều mã mẫu (boilerplate) ở đây, và phần lớn là các comment không ảnh hưởng đến chức năng. Tuy nhiên, bạn cần đảm bảo dòng @match trông giống như sau:

// @match https://www.reddit.com/*

Dòng này yêu cầu Tampermonkey chỉ chạy script trên trang web Reddit. Ký tự đại diện “*” có nghĩa là script sẽ chạy trên mọi trang của Reddit, nhưng đoạn mã bên trong sẽ tính đến điều đó và đảm bảo chỉ ảnh hưởng đến trang chủ chính.

Bây giờ là đoạn script thực tế, bạn nên thay thế dòng “// Your code here…” bằng đoạn mã sau:

function checkURL() {
    if (window.location.pathname === "/") {
        window.location.replace("//www.reddit.com/new");
    }
}

let currentUrl = location.href;
checkURL();

setInterval(() => {
    if (location.href !== currentUrl) {
        currentUrl = location.href;
        checkURL();
    }
}, 500);

Bạn không cần phải hiểu sâu sắc mọi thứ đang diễn ra ở đây, nhưng chúng ta sẽ cùng tìm hiểu một vài phần chính.

Hàm checkURL() thực hiện công việc chính. Đầu tiên, nó kiểm tra xem đường dẫn URL của trang (pathname) có phải là một dấu gạch chéo đơn “/” sau tên miền hay không. Nếu đúng, tức là chúng ta đang ở trang chủ. Sau đó, nó gọi window.location.replace(), đơn giản là thêm “/new” vào cuối URL. Điều này hướng dẫn trình duyệt của bạn tải lại URL, chính là trang chủ nhưng được sắp xếp theo các bài đăng mới nhất thay vì mặc định.

Phần còn lại của script đảm bảo việc kiểm tra này diễn ra thường xuyên: hai lần mỗi giây. Lý tưởng nhất là điều này không cần thiết; việc kiểm tra chỉ nên diễn ra khi URL thay đổi và trang tải lần đầu. Tuy nhiên, do cách Reddit tải các trang động, script cần phải kiểm tra định kỳ. Đây là một cách tiếp cận “ép buộc”, nhưng đoạn mã thực hiện rất ít công việc nên chúng ta có thể thực hiện mà không gặp vấn đề về hiệu suất.

Hãy lưu script của bạn và đóng tab Tampermonkey, sau đó chuyển sang Reddit và thử tải lại trang chủ. Bây giờ bạn sẽ thấy rằng, thay vì feed “Best” mặc định, bạn đang xem “New” – một trải nghiệm vượt trội hơn hẳn!

Mở rộng tùy chỉnh cho các Subreddit

Bạn không cần thay đổi nhiều đoạn mã để áp dụng cho các trang chủ subreddit. Chỉ cần thêm một điều kiện khác vào hàm checkURL(), xử lý các URL subreddit theo cách tương tự:

function checkURL() {
    let match;

    if (window.location.pathname === "/") {
        window.location.replace("//www.reddit.com/new");
    } else if (match = window.location.pathname.match("(/r/[^/]+)/$")) {
        window.location.replace("//www.reddit.com" + match[1] + "/new/");
    }
}

Kiểm tra này phức tạp hơn một chút vì bạn cần kiểm tra một mẫu có thể khớp với nhiều URL khác nhau, chứ không phải một URL cố định. Lệnh gọi window.location.pathname.match() sử dụng biểu thức chính quy (regular expression). Một lần nữa, các chi tiết không quá quan trọng; điều cốt yếu là kiểm tra này khớp với các URL có dạng “/r/[tên_subreddit]/” và thêm “/new/” vào cuối chúng.

Hơn cả Reddit: Tiềm năng tùy chỉnh website bằng Tampermonkey

Một khi bạn đã thiết lập tiện ích mở rộng này, thế giới tùy chỉnh sẽ mở ra trước mắt bạn, miễn là bạn có thể học một chút JavaScript cơ bản. Với Tampermonkey, hoặc một tiện ích mở rộng tương tự, và sự quyết tâm, bạn có thể khắc phục đủ loại vấn đề với các trang web bạn thường xuyên sử dụng. Bạn có thể xóa các yếu tố không mong muốn, sắp xếp lại điều hướng, buộc trang hiển thị chế độ tối (dark mode), chặn video tự động phát, và nhiều hơn thế nữa.

Giới hạn thực sự duy nhất phụ thuộc vào cấu trúc của từng trang web. Ví dụ, X (Twitter) sử dụng cùng một URL cho cả chế độ “For you” và “Following”, điều này khiến việc can thiệp phức tạp hơn nhiều. Mặt khác, YouTube lại hoạt động tốt hơn, với các URL riêng biệt cho trang chủ và feed đăng ký.

Vì vậy, việc sửa đổi các trang web đòi hỏi một chút tìm hiểu và thử nghiệm, nhưng những cải tiến bạn có thể thêm vào sẽ hoàn toàn xứng đáng với thời gian bạn bỏ ra.

Kết luận

Việc tùy chỉnh trải nghiệm duyệt web, đặc biệt là khắc phục những phiền toái nhỏ như Reddit mặc định sắp xếp “Best”, không chỉ giúp bạn tiết kiệm thời gian mà còn nâng cao đáng kể sự hài lòng khi sử dụng internet. Với sức mạnh của JavaScript kết hợp cùng tiện ích Tampermonkey, người dùng có thể dễ dàng biến những trang web quen thuộc trở nên phù hợp hơn với sở thích cá nhân. Đây là một minh chứng rõ ràng cho việc công nghệ có thể được tận dụng để phục vụ nhu cầu riêng biệt của mỗi người.

Bạn đã từng tùy chỉnh website nào bằng script chưa? Hãy chia sẻ kinh nghiệm và những “phiền toái” mà bạn đã khắc phục thành công trong phần bình luận dưới đây!

Related posts

Cơ hội vàng: Laptop Acer Aspire Go 15 Core i5 chỉ còn 350 USD – Đừng bỏ lỡ!

Administrator

Tự Làm NAS Tại Nhà: Biến Máy Tính Cũ Thành Giải Pháp Lưu Trữ Mạnh Mẽ Với Chi Phí Thấp

Administrator

Apple Maps Đột Phá Với Đánh Giá Chuyên Gia: Hướng Đi Mới Cho Ẩm Thực, Khách Sạn & Golf

Administrator