1

我正在尝试为自己制作一个 Chrome 扩展,这样当我在Twitch.tv访问任何类型的频道时,聊天将自动隐藏。

我一直在用 Firebug 看它,我发现toggle_chat(). 如果我在控制台中输入,聊天将不再可见。

在我的用户脚本文件中,我写了

window.onload = function() {
toggle_chat();
}

但它说

Uncaught ReferenceError: toggle_chat is not defined" 当我加载 Twitch 频道时在控制台中。

任何想法如何使这项工作?

4

2 回答 2

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);
}
于 2013-04-29T22:05:49.177 回答
1

我知道这很 hacky,但它可以完成工作,有时这正是您所需要的。:) 它会大约每半秒检查一次函数,直到它存在。当它最终出现时,它会调用该函数然后清除计时器。

window.onload = function() {
    var id = null;

    var check = function() {
        if (typeof toggle_chat === "function") {
            toggle_chat();
            clearInterval(id);
        }
    }

    id = setInterval(check, 500);
}
于 2013-04-29T21:22:48.767 回答