Javascript 一个元素隐藏脚本的目标是在“facebook.com”的所有页面上工作,它只在某些浏览器环境下工作
我有一个脚本,可以对Javascript 一个元素隐藏脚本的目标是在“facebook.com”的所有页面上工作,它只在某些浏览器环境下工作,javascript,facebook,userscripts,Javascript,Facebook,Userscripts,我有一个脚本,可以对facebook.com的所有页面中的各种元素执行显示:无或可见性:隐藏。我用Firefox中的Greasemonkey和Chrome中的Tampermonkey运行它。最终结果在这两种浏览器中是相同的 我正在经历以下有线情况,这可能与facebook使用react.js有关 问题是: 如果我只是在about:blank中打开浏览器并导航到facebook.com/page_2,那么脚本就可以工作了 如果我在facebook.com/page_1中,并在新选项卡中打开face
facebook.com
的所有页面中的各种元素执行显示:无
或可见性:隐藏
。我用Firefox中的Greasemonkey和Chrome中的Tampermonkey运行它。最终结果在这两种浏览器中是相同的
我正在经历以下有线情况,这可能与facebook使用react.js有关
问题是:
about:blank
中打开浏览器并导航到facebook.com/page_2,那么脚本就可以工作了- 如果我在facebook.com/page_1中,并在同一选项卡中打开facebook.com/page_2,脚本将无法在该页面上运行
- 如果我在“主页”(一般的墙页)中,脚本可以运行(比如说,因为我是通过方式1或方式2到达的),但是我单击一个链接到同一页面的外围链接(比如,主导航栏中的“主页”链接),页面将被重新加载,但这次脚本无法运行
我的问题: 你知道如何解释这种行为吗 我如何才能与之抗争,使脚本始终有效 到目前为止,我尝试的是: 我尝试在设定的时间间隔内运行它,以便它每半秒运行一次,并在所有情况下删除所有内容,但它没有帮助:
// ==UserScript==
// @name facebook
// @namespace nms
// @include http://*.facebook.com/*
// @include https://*.facebook.com/*
// @version 1
// @grant none
// ==/UserScript==
setInterval( ()=> {
// generalStuff:
document.querySelectorAll(' #left_nav_section_nodes, .fbChatSidebar ').forEach( (e)=> {
e.style.visibility = "hidden";
});
// myWall:
document.querySelectorAll(' #stream_pagelet ').forEach( (e)=> {
e.style.visibility = "hidden";
});
// People lists:
// Friends list:
document.querySelectorAll(' #pagelet_timeline_medley_friends, .friendBrowserForm, #u_jsonp_3_2e ').forEach( (e)=> {
e.style.visibility = "hidden";
});
// PMYK:
document.querySelectorAll(' #timeline_tab_content, #pagelet_pymk_timeline ').forEach( (e)=> {
e.style.visibility = "hidden";
});
// alert('All selectors are valid so far');
}, 500);
你是如何使用这个脚本的?我编辑了这个问题并对此进行了详细说明。你把这个脚本放在哪里?在您的控制台内?不,它由GreaseMonkey/Tampermoneky在每个页面中执行。由于页面将不断重新呈现部分并覆盖覆盖覆盖,因此您最好通过userstyles.org和样式表来解决此问题。看看你是如何使用这个脚本的?我编辑了这个问题并对此进行了详细说明。你把这个脚本放在哪里?在您的控制台内?不,它由GreaseMonkey/Tampermoneky在每个页面中执行。由于页面将不断重新呈现部分并覆盖覆盖覆盖,因此您最好通过userstyles.org和样式表来解决此问题。看见