Javascript 加载Youtube评论或Messenger消息时,如何运行Chrome扩展?

Javascript 加载Youtube评论或Messenger消息时,如何运行Chrome扩展?,javascript,jquery,google-chrome,google-chrome-extension,youtube,Javascript,Jquery,Google Chrome,Google Chrome Extension,Youtube,我想将包含某个关键字的youtube评论更改为其他内容,但要做到这一点,我必须检测它们的文本。我使用的chrome扩展的清单如下: { "manifest_version": 2, "browser_action": { "default_icon": "icon.png", "default_popup": "popup.html" }, "permissions": [ "activeTab", "https://ajax.googleapis

我想将包含某个关键字的youtube评论更改为其他内容,但要做到这一点,我必须检测它们的文本。我使用的chrome扩展的清单如下:

{
  "manifest_version": 2,
  "browser_action": {
    "default_icon": "icon.png",
    "default_popup": "popup.html"
  },
  "permissions": [
    "activeTab",
    "https://ajax.googleapis.com/"
  ],
  "content_scripts": [{
    "css": ["styles.css"],
    "js": ["content.js"],
    "matches": ["https://*/*"],
    "run_at": "document_end"
  }]
}
我的content.js文件如下:

警报(“启动”)


然而,在Youtube评论或Messenger消息加载之前,我的警报就会发出。如何等待?

YouTube评论和messenger消息是异步加载的,您的
content.js
document\u端运行,即在执行这些调用之前

在“document_end”的情况下,文件在DOM完成后立即注入,但在加载子资源(如图像和帧)之前注入

在YouTube中,您必须使用某种监听器,可能是
MutationObserver
,此代码应该可以工作:

// select the target node
var target = document.getElementById('watch-discussion');
// create an observer instance
var observer = new MutationObserver(function(mutations) {
    mutations.forEach(function(mutation) {
       console.log(mutation.type);
    });    
});

// configuration of the observer:
var config = { childList: true };

// pass in the target node, as well as the observer options
 observer.observe(target, config);
基于


通过监听comments包装器的childList突变,您将能够在每次异步将评论加载到页面时触发代码,异步加载YouTube评论和messenger消息,并且您的
content.js
文档端运行,即在执行这些调用之前

在“document_end”的情况下,文件在DOM完成后立即注入,但在加载子资源(如图像和帧)之前注入

在YouTube中,您必须使用某种监听器,可能是
MutationObserver
,此代码应该可以工作:

// select the target node
var target = document.getElementById('watch-discussion');
// create an observer instance
var observer = new MutationObserver(function(mutations) {
    mutations.forEach(function(mutation) {
       console.log(mutation.type);
    });    
});

// configuration of the observer:
var config = { childList: true };

// pass in the target node, as well as the observer options
 observer.observe(target, config);
基于

通过监听comments包装器的childList突变,您将能够在每次将注释异步加载到页面时触发代码

另请参见,另请参见和