gpt4 book ai didi

javascript - 加载 YouTube 评论后火狐插件自动调用 JavaScript

转载 作者:行者123 更新时间:2023-11-28 08:52:47 25 4
gpt4 key购买 nike

我正在尝试在火狐浏览器中构建附加组件。我使用页面模块,以便在登陆特定页面(Youtube)时触发脚本,该脚本可以将数据传递给主脚本。但它无法与数据注释通信,因为它是在页面加载后加载的(使用ajax或其他东西)。请帮我!我的例子:

main.js

pageMod.PageMod({
include: "*.youtube.com",
contentScriptFile: data.url("jquery-1.8.3.js"),
contentScriptFile: data.url("element-getter.js"),
contentScriptWhen: "end"
});

element-getter.js

var divs = document.getElementsByTagName("div");
for (var i = 0; i < divs.length; ++i) {
divs[i].setAttribute("style", "border: solid red 1px;");
}

可以看到里面的评论内容

<div id = watch-discussion></div>

非常感谢你。

最佳答案

由于内容是在初始页面加载后加载的,因此您应该使用 MutatinObserver API。这将允许您在 watch-discussion 的内容被修改时触发回调。

以下是我的一个扩展程序的片段:

// create an observer instance
var observer = new page.defaultView.MutationObserver(function(mutations, obs) {
stopTube._handleMutation(mutations, obs);
});

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

// pass in the target node, as well as the observer options
// Here instead of page.body, you should be using page.getElementById('watch-discussion'), otherwise you will have too many notifications.
observer.observe(page.body, config);

page.addEventListener('unload', function(evt) {
// remember to stop observing when you are done
observer.disconnect();

});

关于javascript - 加载 YouTube 评论后火狐插件自动调用 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18942192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com