我正在尝试使用Kango framework加载页面时执行操作。它适用于谷歌浏览器,但不适用于Mozilla Firefox:
extension_info.json:
{
"content_scripts": ["content_script.js"],
"description": "Extension description",
"creator": "Kango",
"background_scripts": [
"main.js"
],
"homepage_url": "http://kangoextensions.com/",
"version": "0.9.0",
"browser_button": {
"caption": "Kango",
"icon": "icons/button.png",
"tooltipText": "Kango"
},
"name": "MyExtension"
}
content_script.js :
// ==UserScript==
// @name MyExtension
// @include http://*
// @include https://*
// ==/UserScript==
main.js:
function MyExtension() {
var self = this;
kango.ui.browserButton.addEventListener(kango.ui.browserButton.event.COMMAND, function() {
self._onCommandClick();
});
kango.browser.addEventListener(kango.browser.event.DOCUMENT_COMPLETE, function(event) {
alert('On document complete!');
kango.console.log(event);
});
}
MyExtension.prototype = {
_onCommandClick: function() {
kango.browser.tabs.create({url: 'http://www.stackoverflow.com'});
}
};
var extension = new MyExtension();
有人可以解释为什么它在Mozilla Firefox中不起作用,但在谷歌浏览器中有效吗?
我尝试了其他活动,例如'TAB_CHANGED'和'BEFORE_NAVIGATE',但它们也无法在Mozilla Firefox中使用。
谢谢! :)
[]的
答案 0 :(得分:1)
我有类似的问题,但是事件被触发了
我的背景计数包含
main.js
var handleTabCreated = function (event){
kango.console.log("Tab created directed to " + event.url);
count++;
requestTab = event.target;
/*
* Remove event listener
*/
kango.browser.removeEventListener(kango.browser.event.DOCUMENT_COMPLETE , handleTabCreated);
result = requestTab.dispatchMessage('ParseData' , count);
kango.console.log(result); // Returns False and no message is sent to Tab
}
kango.addMessageListener('Content2Background', function(event) {
sourceTab = event.target;
img = (event.data);
kango.console.log('Received message from content ' + img);
kango.browser.addEventListener(kango.browser.event.DOCUMENT_COMPLETE , handleTabCreated)
kango.browser.tabs.create({url:'www.pngine.com',focused:false});
}
在我的前台脚本中,我只触发调度消息以触发代码。
content.js
// ==UserScript==
// @name testitem
// @namespace content
// @include http://*
// @include https://*
// @require jquery-1.9.1.min.js
// ==/UserScript==
var $ = window.$.noConflict(true);
img = 'test';
kango.dispatchMessage('Content2Background', img );
适用于Chrome和Firefox。 firefox中唯一的问题是我无法向新创建的选项卡发送任何方法,但我可以在Chrome中执行此操作。
这是我项目代码的其余部分
{
"name": "Test item",
"version": "1.2.0",
"description": "Test item demo",
"creator": "Ahmed",
"homepage_url": "http://pngine.com/",
"background_scripts": ["jquery-1.9.1.min.js","main.js"],
"content_scripts": ["content.js"],
"browser_button": {
"caption": "Test_item_demo",
"tooltipText": "Test_item_demo",
"icon": "icons/button.png"
},
"context_menu_item": {
"caption": "Blog Verifier"
}
}
我希望它可以帮助您,并且我会尝试检查为什么我无法将msgs发送到创建的标签页。
最好的运气