Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在特定网站上加载页面时搜索/替换内容脚本_Javascript_Jquery_Facebook_Google Chrome Extension - Fatal编程技术网

Javascript 在特定网站上加载页面时搜索/替换内容脚本

Javascript 在特定网站上加载页面时搜索/替换内容脚本,javascript,jquery,facebook,google-chrome-extension,Javascript,Jquery,Facebook,Google Chrome Extension,我正在编写一个chrome扩展,它需要替换包含某些关键字的facebook帖子内容。它在页面加载时工作得很好,但是当我在facebook中跟踪任何链接时,脚本都不会运行。所以它在主页上工作,但如果我按下主页链接,它将加载没有此脚本的相同页面 我有一条控制台日志消息说脚本已加载,第一页只会看到一次 我已经设法让它在每次通过设置加载新页面时都加载代码 "all_frames": true 在第一次页面加载时刷新页面时,此选项非常有效。但是,当稍后重新运行时,当我在控制台日志中获得第二条加载的消息后,

我正在编写一个chrome扩展,它需要替换包含某些关键字的facebook帖子内容。它在页面加载时工作得很好,但是当我在facebook中跟踪任何链接时,脚本都不会运行。所以它在主页上工作,但如果我按下主页链接,它将加载没有此脚本的相同页面

我有一条控制台日志消息说脚本已加载,第一页只会看到一次

我已经设法让它在每次通过设置加载新页面时都加载代码 "all_frames": true 在第一次页面加载时刷新页面时,此选项非常有效。但是,当稍后重新运行时,当我在控制台日志中获得第二条加载的消息后,它找不到这些div中的任何一个,即使它们显然仍然存在于页面中-我尝试使用setTimeout检查它是否运行得太快,但没有成功

有什么办法可以做到这一点吗?本质上,我希望使用userContentWrapper类为所有div运行check_节点,并且每次加载新页面时都要运行该节点

当页面自动加载新帖子时,我也希望在滚动时运行该功能,但我使用的是变异观察者

代码 manifest.json

{
    "manifest_version": 2,
    "name": "Fad Stopper",
    "version": "1.2",
    "description": "Removes annoying fads from Facebook and Twitter",
    "content_scripts": [
    {
        "matches": ["https://twitter.com/*", "*://www.facebook.com/*"],
        "js": ["jquery-2.1.1.min.js", "content.js"],
        "run_at": "document_end",
        "all_frames": true
    }
    ],
    "permissions": [
        "storage"
    ],
    "options_page": "options.html"
}
js我只列出了重要的代码,而不是整个文件

console.log('fadstopper loaded! '+Math.random().toString());

$( document ).ready(function() {
    console.log( "ready! "+$site );
    $("div.userContentWrapper").each(function( index ) {
        console.log("Found node");
        check_node($(this));
    });
});

function check_node($node) {
  // Blah blah, do check & replace content if necessary
}

非常感谢您的帮助

我不能将此标记为重复,但本质上你的问题归结为Xan-感谢链接-我已经使用变异观察员的部分代码来观察dom的变化,因为新帖子被添加到现有页面中-我这里的问题是如何在点击链接和facebook加载新页面后拾取新帖子,虽然代码在运行,但它似乎没有拾取节点进行检查,甚至变异观察员也没有拾取节点
console.log('fadstopper loaded! '+Math.random().toString());

$( document ).ready(function() {
    console.log( "ready! "+$site );
    $("div.userContentWrapper").each(function( index ) {
        console.log("Found node");
        check_node($(this));
    });
});

function check_node($node) {
  // Blah blah, do check & replace content if necessary
}