小编im_*_*ble的帖子

尝试从 Firefox 插件 (SDK) 中的资源加载内容时出现安全错误

我正在使用 SDK 创建一个 Firefox 插件。我的目标很简单,拦截特定的 iframe 并加载我自己的 HTML 页面(与我的插件一起打包为资源)而不是最初请求的内容。

到目前为止,我有以下代码:

var httpRequestObserver = 
{
    observe: function(subject, topic, data)
    {
        var httpChannel, requestURL;

        if (topic == "http-on-modify-request") {
            httpChannel = subject.QueryInterface(Ci.nsIHttpChannel);
            requestURL = httpChannel.URI.spec;

            var newRequestURL, i;

            if (/someurl/.test(requestURL)) {
                var ioService = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);

                httpChannel.redirectTo(ioService.newURI(self.data.url('pages/test.html'), undefined, undefined));
            }

            return;
        }
    }
};

var observerService = Cc["@mozilla.org/observer-service;1"].getService(Ci.nsIObserverService);
observerService.addObserver(httpRequestObserver, "http-on-modify-request", false);
Run Code Online (Sandbox Code Playgroud)

此代码的工作原理是它检测到正确的 iframe 加载并正确执行重定向。但是,我收到以下错误:

安全错误:http ://url.com 上的内容可能无法加载或链接到 jar:file:///.../pages/test.html。

我怎样才能绕过这个限制?

firefox-addon firefox-addon-sdk

6
推荐指数
1
解决办法
8874
查看次数

标签 统计

firefox-addon ×1

firefox-addon-sdk ×1