【问题标题】: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"}, "*");    
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-19
      • 1970-01-01
      • 1970-01-01
      • 2017-01-15
      • 1970-01-01
      相关资源
      最近更新 更多