Chrome用户脚本工作在一个线程页面,但不是在一个主要的论坛页面,具有相同的结构
Chrome userscript works on a thread page, but not on a main forum page, with the same structure?
所以我做了一个简单的Chrome扩展,只是加载一个简单的脚本,从论坛中删除特定的.css
文件。问题是,在线程页面上,脚本工作;但是在主论坛页面上却没有。
脚本如下:
[...]
//e3 2012/2013
var E3 = document.querySelector('#website-specials');
E3.remove();
//var cssE3 = document.querySelectorAll('[href="http://website/e3/2013/css/styles.css"]')[0];
//cssE3.remove(); works too
alert('debug: removed');
[...]
相关manifest.json
位:
"matches": ["*://*.website.com/*"]
...
"js": ["jquery-2.0.1.min.js", "my_script.js"]
它在线程页面上工作(删除CSS)。
它不工作 (CSS保留)在这个主页。
我希望我没有错过一些简单的东西。
Adblock Plus对于这种事情是完美的。而不是尝试用户脚本或扩展来阻止外部文件,只需安装Adblock Plus,然后为http://website.com/e3/2013/css/styles.css
添加过滤器。
如果您坚持使用userscript方法,那么您现有的代码似乎正在与竞争条件作斗争。该<link>
节点是存储在div中的文档的一部分,显然是由javascript (AJAX)操纵的。有时您的脚本会及时触发以捕获副本,有时则不会。默认情况下,Chrome脚本会在不可预测的时间触发,这加剧了这种情况。
它可能是足够的,只是添加"run_at": "document_end"
到您的manifest.json。(具有讽刺意味的是,在默认脚本执行时间之前触发)
但是,为了确保,使用间隔并删除该链接的所有副本。像这样:
var cssChkInterval = setInterval (killBadCSS, 222);
function killBadCSS (x) {
var cssE3 = document.querySelectorAll (
'link[href="http://website.com/e3/2013/css/styles.css"]'
);
if (cssE3.length) {
for (var J = cssE3.length - 1; J >= 0; --J) {
cssE3[J].remove ();
}
clearInterval (cssChkInterval);
}
}
或者,因为你正在加载jQuery,使用它!:
var cssChkInterval = setInterval (killBadCSS, 222);
function killBadCSS (x) {
var cssE3 = $('link[href="http://website.com/e3/2013/css/styles.css"]');
if (cssE3.length) {
cssE3.remove ();
clearInterval (cssChkInterval);
}
}
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- jQuery:循环一个具有不同超时值的循环
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 从javascript创建一个列表
- 节点导出返回一个空对象
- 使用clickToggle并在单击另一个元素时关闭元素
- 我可以在json对象中添加一个函数吗
- 使用javascript将动态表从一个html页面打印到另一个html页
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 表追加而不附加最后一个元素
- 我如何找到一个句子中的所有空格并替换忽略它们
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 使用类从一个标记中双击事件
- Javascript,访问一个主要对象模块模式中的每个对象
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- Chrome用户脚本工作在一个线程页面,但不是在一个主要的论坛页面,具有相同的结构
- 如何自动更新一个论坛线程时,新的帖子
- 我试图使用网络浏览器控制自动登录到一个网站论坛,但它永远不会登录什么可能是错误的
- 嵌入一个PHP网页内的网页像香草论坛嵌入插件