Image default
Máy Tính

Tùy Chỉnh Reddit: Cách Đổi Thứ Tự Bài Viết Mặc Định Từ “Best” Sang “New” Với Tampermonkey

Những phiền toái nhỏ trên các trang web yêu thích có thể tích lũy theo thời gian và gây ra sự khó chịu đáng kể. Đối với nhiều người dùng Reddit tại Việt Nam, việc nền tảng này mặc định hiển thị bài viết theo thứ tự “Best” là một trong số đó. May mắn thay, chỉ với một chút kiên trì 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ự, mang lại trải nghiệm duyệt web cá nhân hóa và hiệu quả hơn.

Vấn Đề Với Thuật Toán Sắp Xếp “Best” Của Reddit

Trong thời đại số, việc chuyển sang giao diện “new” Reddit đã mang lại nhiều cải tiến về UI, nhưng một vấn đề cốt lõi vẫn khiến không ít người dùng cảm thấy phiền toái: thứ tự sắp xếp bài viết mặc định. Trên trang chủ (home feed) và các trang subreddit riêng lẻ, bài viết thường được hiển thị theo chế độ “Best” (Tốt nhất). Đây là một thuật toán không rõ ràng, và giống như thuật toán “Dành cho bạn” (For You) trên X (Twitter) hay trang chủ YouTube, nó có xu hướng ưu tiên quảng bá nội dung hơn là phục vụ nhu cầu cụ thể của người dùng.

Trang chủ Reddit hiển thị các bài viết được sắp xếp theo chế độ "Best".Trang chủ Reddit hiển thị các bài viết được sắp xếp theo chế độ "Best".

Không ít lần, người dùng bị thu hút bởi một tiêu đề hấp dẫn nhưng lại cảm thấy thất vọng khi nhận ra bài viết đã cũ hàng tuần hoặc thậm chí hàng tháng. Ngay cả khi nhận ra vấn đề, việc phải nhấp hai lần để chuyển từ “Best” sang “New” cũng đủ làm gián đoạn trải nghiệm và mạch cảm xúc khi duyệt nội dung. Tuy nhiên, nhờ sự hỗ trợ của các công cụ mạnh mẽ, vấn đề này giờ đây có thể được giải quyết triệt để, giúp bạn tận hưởng luồng tin tức mới nhất một cách liên tục và không bị gián đoạn.

Hướng Dẫn Thay Đổi Thứ Tự Bài Viết Mặc Định Với Tampermonkey

Nếu bạn có chút kiến thức về JavaScript, bạn có thể đã hình dung ra 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, sửa đổi màu sắc, font chữ hoặc thậm chí loại bỏ nội dung không mong muốn trên một trang web. Để những thay đổi này hiển thị với mọi người, bạn cần truy cập vào backend của website, nhưng để thay đổi trải nghiệm cá nhân của mình trên bất kỳ trang web nào, bạn có thể sử dụng trình duyệt của mình.

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 các đoạn mã 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 mục đích này là Tampermonkey.

Trang tiện ích mở rộng Chrome dành cho Tampermonkey.Trang tiện ích mở rộng Chrome dành cho Tampermonkey.

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

Cài Đặt Tampermonkey

Bắt đầu bằng cách tải Tampermonkey cho trình duyệt của bạn. Bạn có thể tìm thấy phiên bản Chrome tại Chrome Web Store.

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 một script mới). Bạn sẽ thấy một giao diện tương tự như hình dưới đây:

Một userscript mới trong Tampermonkey, với mã JavaScript cơ bản đã được tạo sẵn.Một userscript mới trong Tampermonkey, với mã JavaScript cơ bản đã được tạo sẵn.

Phần lớn mã ở đây là các bình luận và mã boilerplate không có tác động đáng kể đế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 chỉ thị cho Tampermonkey rằng script chỉ nên chạy trên trang web Reddit. Dấu wildcard “*” có nghĩa là script sẽ chạy trên mọi trang của Reddit, nhưng đoạn mã chính sẽ xử lý để chỉ ảnh hưởng đến trang chủ.

Đoạn Mã JavaScript Thay Đổi Thứ Tự Trang Chủ Reddit

Bây giờ là lúc thay thế dòng “// Your code here…” bằng đoạn mã script thực tế 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 chi tiết của đoạn mã này, nhưng tôi sẽ giải thích 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 URL của trang chỉ có một dấu gạch chéo sau tên miền ("/") hay không. Nếu có, tức là chúng ta đang ở trang chủ. Sau đó, nó gọi window.location.replace(), chỉ đơn giản là thêm “/new” vào cuối URL. Điều này hướng dẫn trình duyệt tải lại URL, tức là trang chủ, nhưng được sắp xếp theo các bài viết mới nhất thay vì mặc định.

Phần còn lại của script đảm bảo rằng 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à việc 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, script cần kiểm tra định kỳ. Đây là một phương pháp “brute force”, nhưng đoạn mã thực hiện rất ít công việc nên chúng ta có thể áp dụng mà không ảnh hưởng hiệu suất.

Lưu script của bạn và đóng tab Tampermonkey, sau đó chuyển sang Reddit và thử tải trang chủ. Giờ đây, thay vì hiển thị theo mặc định “Best”, bạn sẽ thấy trang chủ được sắp xếp theo “New” – một trải nghiệm duyệt tin tức mới mẻ và kịp thời hơn rất nhiều!

Mở Rộng Giải Pháp: Tùy Chỉnh Cả 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 nữa 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/");
    }
}

Việc 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, thay vì một URL cố định. Lệnh gọi window.location.pathname.match() sử dụng một biểu thức chính quy (regular expression – Regex). 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.

Giao diện IDE hiển thị một số mã JavaScript.Giao diện IDE hiển thị một số mã JavaScript.

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. Với Tampermonkey, hoặc một tiện ích mở rộng tương tự, và một chút quyết tâm, bạn có thể khắc phục mọi loại vấn đề trên các trang web bạn thường xuyên sử dụng. Từ việc loại bỏ các yếu tố không mong muốn, sắp xếp lại điều hướng, buộc trang web hiển thị chế độ tối, ngăn video tự động phát, và nhiều hơn nữa.

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

Vì vậy, việc tùy chỉnh 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 chắc chắn rất đáng để bỏ thời gian. Hãy tự mình trải nghiệm và biến Reddit trở thành một nơi lý tưởng hơn, theo cách bạn muốn!

Related posts

Skype Chính Thức Ngừng Hoạt Động Vào 5/5/2025: Những Điều Cần Biết và Giải Pháp Thay Thế

Administrator

Cập Nhật Snipping Tool Windows 11: AI “Perfect Screenshot” Và “Color Picker” Đột Phá

Administrator

Calibre 8.7 “Eclipse”: Nâng Tầm Quản Lý Sách Điện Tử Với Cải Tiến Vượt Trội Cho Kindle Và Kobo

Administrator