Javascript Mozilla WebExtensions新指南
在此链接中 您可以看到,mozilla现在也在尝试对Firefox进行Chrome扩展,只需进行最少的更改 如果你进入这个链接 有一个关于如何从chrome扩展移植到firefox插件的指南 我的问题是清单中必须有一个“加载项id” 它有一个例子,我是这样做的Javascript Mozilla WebExtensions新指南,javascript,google-chrome,firefox,firefox-addon,firefox-addon-webextensions,Javascript,Google Chrome,Firefox,Firefox Addon,Firefox Addon Webextensions,在此链接中 您可以看到,mozilla现在也在尝试对Firefox进行Chrome扩展,只需进行最少的更改 如果你进入这个链接 有一个关于如何从chrome扩展移植到firefox插件的指南 我的问题是清单中必须有一个“加载项id” 它有一个例子,我是这样做的 { "background": { "scripts": [ "background.js" ] }, "applications": {
{
"background": {
"scripts": [
"background.js"
]
},
"applications": {
"gecko": {
"id": "kwstasna13@gmail.com",
"strict_min_version": "3.1.3",
"strict_max_version": "50.*"
}
},
"browser_action": {
"default_icon": "img/icon19.png",
"default_title": "iFB PRO v3 The Ultimate Tool for Invites in Facebook",
"default_popup": "popup.html"
},
"icons": {
"19": "img/icon19.png",
"38": "img/icon38.png",
"48": "img/icon_48_2.png",
"128": "img/icon_128.png"
},
"manifest_version": 2,
"name": "iFB PRO for Facebook Invites Events&Pages",
"description": " This is the ULTIMATE Invite Tool for Events and Pages in Facebook!! ",
"permissions": [ "activeTab" ],
"version": "3.1.3"
}
POPUP.HTML
<html lang="en">
<head>
<script src="popup.js"></script>
<script src="jquery.min.js"></script>
<script src="bootstrap.min.js"></script>
<style type="text/css" media="screen">
body { min-width:250px; min-height:700px; text-align: center; }
#click-me-l { font-size: 20px; }
#click-me-f { font-size: 20px; }
.btnExample
{
color: #FFFFFF;
background: #5CADFF;
font-weight: bold;
border: 5px solid #ff;
}
.btnExample:hover
{
color: #FFFFFF;
background: #2E8AE6;
cursor: pointer;
}
.btnExample1
{
color: #FFFFFF;
background: #5CADFF;
font-weight: bold;
border: 5px solid #ff;
}
.btnExample1:hover
{
color: #FFFFFF;
background: #2E8AE6;
cursor: pointer;
}
</style>
</head>
<body>
<body bgcolor="#3B5998">
<img src="img/ifb-sketo.png">
<font color="white"><h1>Click here to invite friends to Pages</h1></font>
<button id='click-me-l' class="btnExample">Pages</button>
<font color="white"><h1>Click here to invite friends to Events</h1></font>
<button id='click-me-f' class="btnExample1">Events</button>
<br><font color="white"><h2>Please consider a donation in my PayPal account. Click the image below!</h2></font>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----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-----END PKCS7-----
">
<input type="image" target="_blank" src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
<img target="_blank" alt="" border="0" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>
<font color="white"><h2>Click the image below to Like Us on Facebook</h2></font>
<a href="https://www.facebook.com/pages/IFB-Invite-all-to-Events-and-Pages/284580485083298" target="_blank"><img src="img/like.png">
</body>
</html>
BACKGROUND.JS
chrome.extension.onMessage.addListener(
function(request, sender, sendResponse) {
switch (request.directive) {
case "popup-click-l":
// execute the content script
chrome.tabs.executeScript(null, { // defaults to the current tab
file: "pages.js", // script to inject into page and run in sandbox
allFrames: true // This injects script into iframes in the page and doesn't work before 4.0.266.0.
});
sendResponse({}); // sending back empty response to sender
break;
case "popup-click-f":
// execute the content script
chrome.tabs.executeScript(null, { // defaults to the current tab
file: "events.js", // script to inject into page and run in sandbox
allFrames: true // This injects script into iframes in the page and doesn't work before 4.0.266.0.
});
sendResponse({}); // sending back empty response to sender
break;
}
}
);
chrome.runtime.onInstalled.addListener( function(details) {
switch(details.reason) {
case "install":
chrome.tabs.create({url: "https://www.facebook.com/pages/IFB-Invite-all-to-Events-and-Pages/284580485083298?sk=app_128953167177144&ref=page_internal"});
break;
case "update":
break;
}
});
然后我有两个js文件,里面有简单的javascript代码
我每晚都在firefox中完美地安装我的扩展
它会打开popup.html
但是当我按下按钮时,并没有执行javascript代码
有人知道为什么不工作吗
作为一个chrome扩展,它工作得非常完美。chrome扩展API的某些部分尚未移植。查看文档了解更多信息: 此处列出了支持的API的另一个页面
请将导入内容的文档链接给我好吗?抱歉,我弄错了消息传递,他们确实支持chrome.runtime.sendmessage,只是他们还不支持“本机消息传递”,bwintons链接显示哪些API受支持,哪些还不受支持。谢谢bwinton,我试着找到了那个链接,但是再也找不到了。那为什么我的扩展不起作用呢?我不发送本地消息WebExtensionsAPI仍处于测试模式,他们正在处理并修复其中的bug,正式发布时应该可以正常工作。您可以在此处查看API中当前的Bug列表:下面是一个关于逐步解决的好方法:
chrome.extension.onMessage.addListener(
function(request, sender, sendResponse) {
switch (request.directive) {
case "popup-click-l":
// execute the content script
chrome.tabs.executeScript(null, { // defaults to the current tab
file: "pages.js", // script to inject into page and run in sandbox
allFrames: true // This injects script into iframes in the page and doesn't work before 4.0.266.0.
});
sendResponse({}); // sending back empty response to sender
break;
case "popup-click-f":
// execute the content script
chrome.tabs.executeScript(null, { // defaults to the current tab
file: "events.js", // script to inject into page and run in sandbox
allFrames: true // This injects script into iframes in the page and doesn't work before 4.0.266.0.
});
sendResponse({}); // sending back empty response to sender
break;
}
}
);
chrome.runtime.onInstalled.addListener( function(details) {
switch(details.reason) {
case "install":
chrome.tabs.create({url: "https://www.facebook.com/pages/IFB-Invite-all-to-Events-and-Pages/284580485083298?sk=app_128953167177144&ref=page_internal"});
break;
case "update":
break;
}
});