6


Chrome、Firefox、Opera の拡張機能がインストールされていない場合 、サイトにカスタム バー (通知: Install our plugin. など) を表示したい。拡張機能がインストールされている場合は表示されません。

アイデアは次のとおり
です。 1. ユーザーがサイトにアクセスすると、「拡張機能をインストールしてください」というメッセージが表示されたバーが表示されます。
2. ユーザーがインストールをクリックすると、拡張機能がインストールされます。ユーザーが開く必要はありません。
3. ユーザーがサイトに再度アクセスすると、拡張機能がインストールされているため、バーは再び表示されません。
Cookie ではなく、インストールの確認についてのみ話します

これまでのところ、Chrome: http://blog.kotowicz.net/2012/02/intro-to-chrome-addons-hacking.html
および Firefox: http://webdevwonders.com/detecting-のみのソリューションを見つけることができました。 firefox-add-ons/
Opera について言及されたことはありません。

拡張機能の一部であるローカル リソースをチェックするという考えに基づいて、Opera でそれを行う方法はありますか:
chrome-extension://--Extension ID--/blank.gif
Firefox chrome://firebug/ content/blank.gif

または 、Chrome、Firefox、Opera の拡張機能がインストールされているかどうかを確認する簡単な方法はありますか?

4

1 に答える 1

4

拡張機能が協力する意思がある場合、その存在をドキュメントに簡単にアドバタイズできます。例えば:


拡張機能でできること

window.$$myExt = ...

次に、次の方法で拡張子を検出できます

if(typeOf $$myExt !== 'undefined'){...

(またはそのバリエーション)

少なくともページを取得するのwindowはやや難しい


拡張機能でできること

document.body.classList.add("myExt-visited")

次に、次の方法で拡張子を検出できます

if(document.body.classList.contains("myExt-visited")){...

拡張機能でできること

document.body.innerHTML += "<div id='myExt-toolbar'>..."
// or $('body').append("<div id='myExt-toolbar'>...");

次に、拡張機能を検出できます

if(document.getElementByID("myExt-toolbar")){...
// or if($("#myExt-toolbar").length){...

あるいは、あなたがすることができます

<div id="myExt-replacement">
   ...

そして拡張機能はそうするでしょう

var replacement = document.getElementByID("myExt-replacement");
replacement && replacement.remove();

またはあなたができる

function onMyExtExists(){
  ...
}

そして拡張機能はそうするでしょう

onMyExtExists && onMyExtExists();
于 2013-01-18T12:36:05.460 に答える