gpt4 book ai didi

google-chrome-extension - 火狐 WebExtension : Check if MY extension exists

转载 作者:行者123 更新时间:2023-12-01 13:23:44 28 4
gpt4 key购买 nike

将扩展程序从 Chrome 移植到 FF

遵循本教程(在 Chrome 中运行良好):http://www.codingscripts.com/check-whether-user-has-a-chrome-extension-installed/

从网页发送消息到扩展:在 (web)pagescript.js 中有:

function IsExist(extensionId,callback){
chrome.runtime.sendMessage(extensionId, { message: "installed" },
function (reply) {
if (reply) {
callback(true);
}else{
callback(false);
}
});
}

IsExist("Your extension id",function(installed){
if(!installed){
alert("Please install extension ");
}
});

在扩展中接收来自网页的消息:

chrome.runtime.onMessageExternal.addListener(
function(req, sender, callback) {
if (req) {
if (req.message) {
if (req.message == "installed") {
callback(true);
}
}
}
return true;
});

我要实现的目标

当未安装扩展程序时,我网站上的几个 html 页面需要重定向回主页。因此,这些页面需要能够(自行)确定是否安装了扩展程序。

打开网页时出现错误

ReferenceError:chrome 未定义。 (我也试过 browser.runtime.onMessageExternal 但它抛出“浏览器”未定义)。有没有办法像在 Chrome 中那样做?

最佳答案

感谢所有评论,这就是我想出的。 (我不得不去 document_end(尽管评论建议 document_start)因为我在 content_script.js 中还有其他事情发生

在我的附加组件的 content_script.js 中

document.body.classList.add("plugininstalledblabla");

在我的加载项的 manifest.json 中

 "content_scripts":
[
{
"matches": ["*://*/*"],
"all_frames": true,
"js": ["content_script.js"],
"run_at": "document_end"
}
]

在我网站的 main.js 脚本中

$(window).on("load", function() { // !! Window onLoad cause : document_end -> DOM should be loaded here

// Set
$body = $('body');
if(document.body.classList.contains("plugininstalledblabla")){
console.log('addon is installed');
}
});

关于google-chrome-extension - 火狐 WebExtension : Check if MY extension exists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44592605/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com