Hide Shipped and Sponsored Items in Facebook Marketplace

Hide sponsored and shipped posts in facebook marketplace

当前为 2021-10-13 提交的版本,查看 最新版本

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 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
// @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) => {
    // xpath=//a[contains(@href,'listDetails.do')]
    {
        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").parentNode.remove();
        }
    }
    {
        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) {
            matchingElement.closest(".sonix8o1").parentNode.remove();
            matchingElement.closest("a").parentNode.remove();
        }
    }
}

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