我正在尝试为自己制作Chrome扩展程序,以便当我在Twitch.tv访问任何类型的频道时,聊天会自动隐藏。
我一直在用Firebug看它,我找到了toggle_chat()
。如果我在控制台中输入该内容,聊天将不再可见。
在我的用户文件中,我写了
window.onload = function() {
toggle_chat();
}
但它说
未加载的ReferenceError:当我加载Twitch频道时,未在控制台中定义toggle_chat。
任何想法如何使这项工作?
答案 0 :(得分:3)
这与时间无关。 Chrome扩展程序和内容脚本在isolated world
中执行,这意味着他们无权访问该网页的javascript,包括函数。您可以这样做,以便content script
附加一个<script>
元素,然后调用您想要的页面函数,但只需模拟#right_close
元素上的点击就会容易得多。你可以用这样的纯Javascript来做到这一点:
window.onload = function(){
var evObj = document.createEvent('Events');
evObj.initEvent('click', true, false);
document.querySelector('#right_close').dispatchEvent(evObj);
}
答案 1 :(得分:1)
我知道这非常hacky,但是它完成了工作,有时候正是你所需要的。 :)它将检查函数大致半秒,直到它存在。当它终于出现时,它会调用该函数然后清除计时器。
window.onload = function() {
var id = null;
var check = function() {
if (typeof toggle_chat === "function") {
toggle_chat();
clearInterval(id);
}
}
id = setInterval(check, 500);
}