更改弹出窗口而不是实际窗口?

时间:2015-03-19 18:48:31

标签: javascript html google-chrome google-chrome-extension

我正在尝试弄清楚如何更改Chrome扩展程序中的弹出窗口,而不是Google Chrome中的实际窗口。

JS:

mkSidebar = function(which) {
    var text = "" +
        "<span " + ((which === "data") ? "id='selected'" : "") + ">Data</span>" +
        "<span " + ((which === "logic") ? "id='selected'" : "") + ">Logic</span>" +
        "<span " + ((which === "match") ? "id='selected'" : "") + ">Math</span>";
    document.getElementById("sidebar").innerHTML = text;
};

HTML:

<body onload="mkSidebar('data');">
    <div id='sidebar'></div>
</body>

当我在JSFiddle中运行它时,它可以像预期的那样工作。它填写了侧边栏的HTML。

此处的问题是我将其作为Google Chrome扩展程序运行时。它只是没有做任何事情。


我的猜测是,这是因为它试图在Chrome窗口中找到一个id属性sidebar 的元素。当我右键单击时 - &gt ;检查弹出窗口内的元素,然后直接运行它运行的javascript mkSidebar('data');

那么我如何定位弹出窗口而不是Chrome窗口,或者它正在做什么?

(对不起,如果这是一个愚蠢的问题..我刚开始制作Chrome扩展程序。:P)

1 个答案:

答案 0 :(得分:1)

您必须将<body onload="mkSidebar('data');">更改为文档的DOMContentLoaded事件,或自Inline JavaScript will not be executed.

以来窗口的load事件