2

我使用Crossrider framework
Now 为 Chrome、Firefox、Safari 和 IE 创建了浏览器扩展/附加组件,因为 Crossrider 不提供对 Opera 的支持,我为此创建了一个本机扩展。
我的问题是如何检测访问我们网站的用户(使用 Opera)是否安装了扩展程序?

回答了类似的问题。有没有更好的选择?

或者任何简单的方法来检查(跨浏览器)是否安装了扩展,以便我不必使用Crossrider.API

或者有什么类似于window.navigator.plugins的扩展?

4

1 回答 1

0

您可以使用简单的功能与您的页面进行通信,content script以便您的域仅使用window.postMessage功能。

内容脚本代码:

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"}, "*");    
});
于 2018-08-20T17:08:30.057 回答