我正在尝试弄清楚如何更改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)
答案 0 :(得分:1)
您必须将<body onload="mkSidebar('data');">
更改为文档的DOMContentLoaded
事件,或自Inline JavaScript will not be executed.
load
事件