标签: firefox-addon-sdk

Firefox插件开发

我开始使用Firefox插件开发,并熟悉了Add-on Builder.这个向导是否需要我深入了解Firefox插件开发(如果是这样,我将在哪里创建XUL文件以及如何创建自定义工具栏?).或者是否使用此附加构建器无法实现所有功能?还有什么好的教程解释如何使用Add-on Builder开始使用Firefox插件开发(因为它看起来更容易).

我已经提到过的教程:

但这些并不是特定于使用Add-on Builder.我想请某人指点我可以找到使用附加构建器开发的帮助.

此外,如果我使用SDK在本地开发插件,我可以使用任何好的编辑器,它将显示我可以执行的命令列表(如Java中的Eclipse).

红线是我希望我的图标出现的地方.是否可以使用插件构建器执行此操作.

在此输入图像描述

firefox firefox-addon firefox-addon-sdk

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

停止以编程方式加载网页

我想使用addon builder为firefox创建一个扩展,阻止用户访问恶意网站; 当我看到一个可疑的URL时,我停止加载该页面并询问用户他是否真的想访问该站点.我怎么能实现呢?我期待功能性的编程,以便我可以进行扩展.请帮我.....

javascript firefox-addon firefox-addon-sdk

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

在Firefox插件内容脚本中访问窗口对象?

我似乎无法访问内容脚本中的窗口对象.这是正常的吗?

例如,这没有任何作用:

window.onload = function() {
  console.log("Hello from the onload");
};
Run Code Online (Sandbox Code Playgroud)

相反,我必须使用该unsafeWindow对象.

unsafeWindow.onload = function() {
  console.log("Hello from the onload");
};
Run Code Online (Sandbox Code Playgroud)

我一定错过了一些简单的事情吗?

javascript firefox firefox-addon firefox-addon-sdk

1
推荐指数
2
解决办法
1984
查看次数

使用Firefox Addon内容脚本访问cookie?

我正在尝试从其他人创建的Chrome中翻译插件.它有一个内容脚本chrome.cookies.get.我找不到合适的方法来解决这个问题.有什么方法可以从插件sdk中的内容脚本访问cookie吗?

这是原始代码:

function getCookies(domain, name, callback) {
    chrome.cookies.get({"url": domain, "name": name},
        function(cookie) {
            if (callback) {
                if (cookie) {
                        callback(cookie.value);
                } else {
                    callback(null);
                }
            }
        }
    );
}
Run Code Online (Sandbox Code Playgroud)

cookies sdk firefox-addon google-chrome-extension firefox-addon-sdk

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

Firefox附加组件声明功能并在内容脚本中使用

我正在尝试编写我的第一个firefox附加组件.主要问题似乎是我也是javascript的新手.目前我有:

require('sdk/page-mod').PageMod({
    include: ["*"],
    contentScript: 'window.addEventListener("click", function(e) { alert("blub"); }, false);',
    attachTo: ["existing", "top"]
});
Run Code Online (Sandbox Code Playgroud)

(这里是答案.)现在我想使用声明的函数而不是匿名函数,但我不能让它工作:

require('sdk/page-mod').PageMod({
    include: ["*"],
    contentScript: 'window.addEventListener("click", function(e) { alert("blub"); }, false);',
    attachTo: ["existing", "top"]
});

getImgData function (e) {
    alert("blubber3");
}
Run Code Online (Sandbox Code Playgroud)

第一个问题是我通过添加函数"missing; before statement"得到语法错误.但cfx没有告诉我错误的路线.(有没有任何有用的js编辑工具,具有良好的语法检查/内容辅助?)那么如何声明一个函数并在脚本中的其他地方使用ist.最后,函数需要获取click的目标并解析它.(我阅读了教程但你的所有使用匿名函数:-P)

thx提前

javascript firefox firefox-addon firefox-addon-sdk

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

Firefox插件开发 - tabs api - blacklist url模式注入exstension代码(如chrome中)

我正在使用插件sdk/tabs api将内容脚本注入到选项卡中,如下所示:

tabs.on(ready, function (tab) {
  var worker = tab.attach({
    contentScriptWhen: 'end',
    contentScriptFile: myAwesomeArrayOfScripts
  });

  ...
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以阻止对域模式的附加?最重要的是,我需要阻止它工作:像Firefox的新标签页这样的域.

显然,我能够用这样的代码控制执行:

if (tab.url.indexOf('about:') === 0) return;
Run Code Online (Sandbox Code Playgroud)

但与chrome声明清单相比,它看起来非常不清楚,你可以在这里:

"content_scripts": [
  {
    "matches": [ "http://*/*", "https://*/*", "file://*/*" ],
Run Code Online (Sandbox Code Playgroud)

有类似的东西吗?Firefox文档令人困惑......太多东西和过去的版本和文章太多了.

firefox-addon google-chrome-extension browser-addons firefox-addon-sdk

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

使用附加SDK在Firefox加载项中获取页面标题

我正在尝试使用新的Firefox附加组件构建器在每个页面上获取页面标题.我怎样才能做到这一点?

编辑 更多信息我想在每个页面加载事件上获取页面标题.

firefox-addon firefox-addon-sdk

0
推荐指数
1
解决办法
846
查看次数

Firefox 11+附加SDK可以在地址栏下方的窗口顶部创建工具栏吗?

我正在为客户开发一个工具栏,它希望在地址栏下方的窗口顶部有一个传统的IE样式工具栏.

这就是我所拥有的: 我所拥有的http://www.hellometro.com/toolbar/now.png

请注意,由于状态栏的垂直限制,我必须用全大写字母书写,以使字母清晰易读,同时小到足以容纳.(状态栏中的两个最左边的元素,文本字段和SEARCH按钮)

这就是我需要的: 我需要的是http://www.hellometro.com/toolbar/whatiwant.png

请注意,添加到顶部的工具栏具有足够的垂直空间,可用于文本字段和按钮中的清晰文本.(在浏览器的后退按钮下方左上方).

我正在寻找一种方法将状态栏中的搜索组件定位为默认位置,并允许用户更改其在选项页面中的位置,让他们选择顶部或底部(因为很多(如果不是大多数Firefox用户)我知道他们可以移动附加组件.

我的问题是:Firefox Add-on SDK是否支持我想做的事情,还是我必须从不同的角度切换语言和解决方案?

firefox window toolbar firefox-addon firefox-addon-sdk

0
推荐指数
1
解决办法
1349
查看次数

如果元素存在,如何阻止JavaScript执行?

我有一个Firefox插件,它在sub.example.com的每个页面上注入/执行jQuery脚本.由于设计不当,该脚本无法在网站的一个页面上运行.如果某个元素位于页面上,有没有办法阻止脚本被执行?

编辑:我正在使用的脚本必须 DOM加载之前执行.有没有办法访问HTML文件本身,并找出该元素是否存在?

html javascript jquery firefox-addon firefox-addon-sdk

0
推荐指数
1
解决办法
815
查看次数

如何将Chrome扩展程序(使用特定于Chrome的API)转换为Firefox附加组件?

我无法将复杂的Chrome扩展程序转换为Firefox附加组件.在Chrome扩展程序中,作者使用了一些Chrome API,例如

  • chrome.extension.sendMessage
  • chrome.browserAction.setIcon
  • webkitNotifications.createNotification
  • chrome.tabs.sendMessage
  • chrome.extension.onMessage.addListener
  • chrome.browserAction.onClicked.addListener
  • chrome.privacy.services.autofillEnabled.get
  • chrome.runtime.onInstalled.addListener
  • chrome.tabs.query
  • localStorage

等等.

我不知道如何在Firefox附加代码中实现这些方法.可以使用回调函数调用其中一些API.例如:

chrome.extension.sendMessage ( {
        type: "get.identitieswithurl",
        originUrl: lgmIdentitySave.originUrl,
        actionUrl: lgmIdentitySave.actionUrl
    }, 
    function (resultIdentities) {
        if(resultIdentities != null && resultIdentities.length > 0) {
            lgmIdentitiesPage = resultIdentities;
            fillFormsWithCredential(resultIdentities[0]);
            if(resultIdentities.length > 1 && lgmSuggestionSelectIdDismissed == false) {
                showSelectIdentitySuggestionBar();
            }
        }
    } 
);    
Run Code Online (Sandbox Code Playgroud)

这个问题,我知道Firefox代码可以像

// main add-on script
pageMod.PageMod({
    include: "*.org",
    contentScriptFile: self.data.url("my-script.js"),
    // Send the content script a message inside onAttach
    onAttach: function (worker) {
        worker.port.emit("replacePage", "Page matches …
Run Code Online (Sandbox Code Playgroud)

api firefox-addon google-chrome-extension firefox-addon-sdk content-script

0
推荐指数
1
解决办法
1946
查看次数

在Firefox附加目录中选择一个文件

为简单起见,我正在将基于XUL的Firefox插件转换为基于SDK的版本.我在基于XUL的版本中使用的XPCOM模块似乎可以工作,但ci.nsIFile的行为有所不同.

我无法弄清楚如何导航到目前位于目录最高级别的smartProxy.py.

在XUL版本中,smartProxy.py位于chrome/bin/smartproxy.py上.我使用下面的命令来执行程序,它可以正常工作.

getExeFile: function() {
    var file = cc["@mozilla.org/file/directory_service;1"].getService(ci.nsIProperties).get("ProfD", ci.nsIFile);
    file.append("smartProxy.py");
    return file;
},
Run Code Online (Sandbox Code Playgroud)

下面是它执行的地方,它应该可以全面了解附加组件的工作原理.

start: function() {
    if (this.process && this.process.isRunning)
        return;
    this.process = cc["@mozilla.org/process/util;1"].createInstance(ci.nsIProcess);
    this.process.init(this.getExeFile());
    this.process.runAsync([], 0, this.processObserver);
    this.setProxy();
    this.executeObservers();
},
Run Code Online (Sandbox Code Playgroud)

我如何找到smartProxy.py以便它可以被执行?

javascript firefox firefox-addon firefox-addon-sdk

0
推荐指数
1
解决办法
838
查看次数