gpt4 book ai didi

javascript - 通过 chrome url 将 javascript 加载到 HEAD

转载 作者:行者123 更新时间:2023-11-30 18:40:39 25 4
gpt4 key购买 nike

我正在为 Firefox 开发自定义插件。对于此插件中的一个功能,我有一个按钮,单击该按钮时必须切换隐藏/显示另一个 div 元素。这是通过 Javascript 函数实现的。该函数本身位于一个文件中,该文件也打包在插件中。

由于 div 元素在浏览器页面上,我试图通过使用其 chrome URL 将此函数的 Javascript 加载到页面的 HEAD 中。但是,它没有给出预期的结果。

以下是相关代码的片段:

执行切换操作的实际 Javascript。 chrome URL 为:chrome://firefox_extension/content/togglerowz.js 如果我将此 URL 放入浏览器,它能够显示下面的代码。

function toggle(doc) {
var resultBlock = doc.getElementById("RowzFFExtensionDynamicContainer");
var toggleButton = doc.getElementById("RowzFFToggle");
if (resultBlock.style.display == "block") {
resultBlock.style.display = "none";
toggleButton.value = "Maximize";
} else {
resultBlock.style.display = "block";
toggleButton.value = "Minimize";
}
}

另一个将其加载到浏览器 HEAD 中的 Javascript。这是由窗口加载事件触发的。

var doc = aEvent.originalTarget;
var togglerowzscript = doc.createElement("script");
togglerowzscript.type = "application/javascript";
togglerowzscript.src = "chrome://firefox_extension/content/togglerowz.js";
var headvar = doc.getElementsByTagName("head")[0];
headvar.appendChild(togglerowzscript);

当页面加载时,以下内容在页面的 HEAD 元素中(在 Firebug 中查看):

<script type="application/javascript" src="chrome://firefox_extension/content/togglerowz.js">
Filtered chrome url chrome://firefox_extension/content/togglerowz.js
</script>

当我点击按钮时,错误控制台显示切换未定义。

最佳答案

您是否将相关的 chrome 包列入白名单以允许不受信任的内容加载其中的一部分?出于各种安全和隐私原因,默认设置是不允许的。参见 https://developer.mozilla.org/en/chrome_registration#contentaccessible

关于javascript - 通过 chrome url 将 javascript 加载到 HEAD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6964724/

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