私は、ブラウザを開いたときに "オフ"アイコンが表示され、スクリプトが実行されないように、スクリプトをいつ実行するかをユーザーに決定させたいと思っています。ユーザーがクリックすると、「オン」アイコンに変わり、ユーザーがクリックするまでユーザースクリプトを実行します。私は、それぞれ32x32の2つのPNGアイコンを持っています:on.png
とoff.png
。クロム拡張機能のオン/オフボタン/アイコンを作成する方法は?
私の二つの質問:
私はoff.pngにデフォルトのアイコンを設定できますか?
... "browser_action": { "default_icon": { "32": "off.png" }, "default_title": "icon" }, "icons": { "32": "on.png", "32": "off.png" }, "background": { "scripts": ["background.js"] }, "content_scripts": [{ "js": ["SCRIPT.user.js"] ...
は、ここで私は一時的にしようとする迅速な機能を作った私の
background.js
を、だ:私は私のmanifest.json
でこれを試みたが、それは、アイコンを設定しなかった、代わりにパズルのピース(私はデフォルトを推定)を示しましたそして、(私はフォルダの筐体に「負荷アンパック拡張子」での私のスクリプト、アイコンとマニフェストをロードし、ビューを検査」を選択したときにことを言及する必要がありますonClicked
var status = 0; function toggle() { if (status == 0){ chrome.browserAction.setIcon({path: "on.png", tabId:tab.id}); // so it's set for the tab user is in chrome.tabs.executeScript(tab.id, file:"SCRIPT.user.js"); //execute for this tab status++; } if (status == 1){ chrome.browserAction.setIcon({path: "off.png", tabId:tab.id}); chrome.tabs.executeScript(tab.id, code:"alert()"); // execute nothing when off status++; } if (status > 1) status = 0; // toggle } chrome.browserAction.onClicked.addListener(function(tab) { toggle(); });
に基づいてオン/オフを切り替えます〜にすぐに何か問題があるのかどうかを確認、私はそれが参照しているものを知りませんが、私は)、background.jsでUncaught SyntaxError: Unexpected token :
を見ると、スクリプトの中で私のuserscriptを表示していないようですので、
をフォルダ、任意のアイデア、助け?
私はそれを見たとき、私はちょうど前にあなたのコードをコピーし、ていたが@tempcodeもう一度、 'executeScript'の' code'と 'file'部分を囲んでいる' {} 'を見逃してしまって、それらを追加して、エラーがなくなったかどうかを確認します。 – BeardFist
それは、ハードルが飛び込んだ、私たちはほとんどそこにいる。この修正により私はオフからオンに切り替えることができました(私の最初のテストでは、 "拡張マニフェストはこのホストへのアクセス権を要求しなければなりません" - 私が持っていた 'manifest'の' content-scripts'セクションを削除するよう提案したので'matches'と' excludes'、私はそのエラーを修正するために 'permissions'を追加しました)*、しかし最後に小さな問題が1つあります:" on "をクリックすると、それをオフにすることはできません。 "ページがリロードされるまで(少なくとも私たちは一意の' tab.id'が動作することを知っています)。しかしそれを除けば、残りは機能しているようです。これまでのご協力ありがとうございます! – tempcode
@tempcode問題は、 'status'は何らかのキーワードなので、ステータスはすでに文字列であると定義されているので、' var status = false'は 'false'を割り当てず' false ' 。変数名を 'toggle'のように変更してください。 – BeardFist