开发者

Loading a javascript into HEAD by its chrome url

I am developing a custom plugin for Firefox. For one of the functions in this plugin I have a button which when clicked has to toggle hide/show for another div element. This is achieved by the means of a Javascript function. The function itself is in a file that is packaged in the plugin as well.

Since the div elements are on the browser page I am trying to get the Javascript for this function loaded into the HEAD of the page by using its chrome URL. However, it is not giving the desired result.

Below are snippets of the relevant code:

The actual Javascript that performs the toggle action. The chrome URL for this is: chrome://firefox_extension/content/togglerowz.js If I put this URL in the browser it is able to display the code below.

开发者_高级运维
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";
    }
} 

Another Javascript that loads this into the browser HEAD. This is triggered by a window load event.

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);

When the page loads, the following contents are in the HEAD element of the page (as viewed in Firebug):

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

When I click the button the error console says toggle is not defined.


Did you whitelist the relevant chrome package as allowing untrusted content to load parts of it? The default setting is to not allow that for various security and privacy reasons. See https://developer.mozilla.org/en/chrome_registration#contentaccessible

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜