Hide Shipped and Sponsored Items in Facebook Marketplace

Hide sponsored and shipped posts in facebook marketplace

目前為 2021-10-13 提交的版本,檢視 最新版本

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)


    // ==UserScript==
    // @name         Hide Shipped and Sponsored Items in Facebook Marketplace
    // @icon         https://www.google.com/s2/favicons?domain=facebook.com
    // @version      1.0.1
    // @description  Hide sponsored and shipped posts in facebook marketplace
    // @match        *://*.facebook.com/marketplace/*
    // @exclude      *://*.facebook.com/marketplace/item*
    // @grant        none
    // @author       Russell Aaron Wright III
    // @namespace    AaronWright3.scripts
    // @license      MIT
    // ==/UserScript==

    // Options for the observer (which mutations to observe)
    const config = { childList: true, attributes: true, subtree: true }

    const isExternalURL = (url) => new URL(url).origin !== location.origin;

    // Callback function to execute when mutations are observed
    const callback = (mutationsList, observer) => {
        {
            let xpath = "//a[contains(@href,'li.facebook.com') or contains(@href,'l.facebook.com')]";
            let matchingElement = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
            if (matchingElement && matchingElement.closest("span")) {
                try {
                    matchingElement.closest("span").parentNode.style.display = "none";
                    matchingElement.closest("span").remove();
                }
                catch(e) {
                    console.log(matchingElement);
                }
            }
        }
        {
            let xpath = "//span[text()='Sponsored' or text()='Ships to you']";
            let matchingElement = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
            if (matchingElement) {
                if (matchingElement.closest(".sonix8o1")) {
                    matchingElement.closest(".sonix8o1").parentNode.style.display = "none";
                    matchingElement.closest(".sonix8o1").remove();
                } else if (matchingElement.closest("a")) {
                    matchingElement.closest("a").parentNode.style.display = "none";
                    matchingElement.closest("a").remove();
                }
            }
        }
    }

    // Create an observer instance linked to the callback function and observe
    new MutationObserver(callback).observe(document, config)

window.onLoad = function() {
    callback()
}