【问题标题】:How the tabs.open() function work with separate content script file?tabs.open() 函数如何与单独的内容脚本文件一起使用?
【发布时间】:2016-04-04 02:42:20
【问题描述】:

我正在创建类似于 chrome 搜索的 Firefox 插件。如何使用带有 'url' 选项的 browser.tabs.create() 函数?

我已阅读此article。但是在这里,没有关于如何使用变量 url 创建此选项卡的文档。

//code for CMcontentScript.js-start 

	var tabs = require("../sdk/tabs");

self.on("click", function(node, data) {
	    textContent = window.getSelection().toString();
	    var searchURL = google.com?searchtid=" + textContent;
	    
	    tabs.open(searchURL);//In here i want to know how we can add variable url to 'url' option
	});
//code for CMcontentScript.js-ends


//code for index.js-start 

  searchMenu = cm.Item({
                    label: "Search With enadoc",
                    data: setURL,
                    context: cm.SelectionContext(),
                    image: self.data.url("./icon-16.png"),
                	contentScriptFile: "./CMcontentScript.js"
                });
//code for index.js-ends

【问题讨论】:

  • 好的,它适用于硬线网址吗?
  • 根据文档你应该解析一个对象.like create({ "url":searchURL })

标签: firefox firefox-addon firefox-addon-sdk jpm firefox-addon-webextensions


【解决方案1】:

我认为您正在创建 JPM 插件。这是一个 SDK 插件。这不是 Web 扩展。 chrome.browser.tabs.create 是一个 webextension api。

要创建一个新标签,您应该这样做:

var tabs = require("sdk/tabs");


self.on("click", function(node, data) {
    var textContent = window.getSelection().toString();
    var searchURL = 'http://www.google.com?searchtid=' + textContent;

    tabs.open(searchURL);
});

【讨论】:

  • 这个自我点击方法我添加到单独的文件中,其中包含“data”文件夹,所以我不能使用这个“var tabs = require("sdk/tabs");”。命令提示符中显示参考错误。
  • @SameeraLiyanage 你能把你的代码放到 github 上然后分享。您应该能够在您的数据文件夹中要求该文件,并且它应该可以正常工作。
猜你喜欢
  • 1970-01-01
  • 2018-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多