【问题标题】:Detect if browser extension is installed for Opera检测是否为 Opera 安装了浏览器扩展
【发布时间】:2013-05-17 13:40:45
【问题描述】:
我使用Crossrider framework为 Chrome、Firefox、Safari 和 IE 创建了浏览器扩展/插件
现在,由于 Crossrider 不提供对 Opera 的支持,我为此创建了一个原生扩展。
我的问题是如何检测访问我们网站的用户(使用 Opera)是否安装了扩展程序?
Similar Question 已回答。有没有更好的选择?
或者任何简单的方法来检查(crossbrowser)是否安装了扩展,这样我就不必使用Crossrider.API?
或者有没有类似window.navigator.plugins 的扩展名?
【问题讨论】:
标签:
cross-browser
add-on
browser-extension
opera-extension
【解决方案1】:
您只能使用window.postMessage 函数为您的域使用简单的content script 与您的页面通信。
内容脚本代码:
window.addEventListener("message", function(event) {
if (event.source !== window) return; // We only accept messages from ourselves
switch (event.data.type) {
case 'get_info': window.postMessage({type: "info", browser: 'opera'}, "*"); break;
}
}, false);
您的页面代码:
window.addEventListener('load', function () {
window.addEventListener("message", function (event) {
switch (event.data.type) {
case 'info': console.log(`browser is ${event.data.browser}`); break;
}
});
window.postMessage({type: "get_info"}, "*");
});