2

最近、私は非常に単純なGoogleChrome拡張機能を作成することにしました。ユーザーが拡張機能のボタンを押したときに、JavaScriptを使用してWebページから一部のDOM要素を非表示にするだけです。

Chrome拡張機能について何も知らなかったので、チュートリアルを読み始めました。このGoogleのサンプルに出くわしました。ページを赤くするアイコンのないブラウザアクションです。

このサンプルは、私が作りたいものに本当に近いものです。問題は、それを機能させることができないということです。Chromeに拡張機能を読み込むと、この拡張機能のボタンが表示されますが、それを押すと何も起こりません。サンプルが機能しません。おそらく、まだ知らないことを知っている必要があります。

そして、あなたが私に尋ね始める前に:

  • はい、ブラウザを再起動してみました。
  • Chromeの最新バージョンを使用しています。

手伝ってくれてありがとう。

4

2 に答える 2

5

サンプルzipを開いたら、backgrond.jsを見つけて編集します。次のような行を見つけます。

null, {code:"document.body.style.background='red !important'"});

「!important」を削除します。したがって、次のようになります。

null, {code:"document.body.style.background='red'"});

それだ。拡張機能を保存して再ロードするだけで、機能するはずです(ページの!importantフラグがバックグラウンドに設定されている場合を除く)。

「!important」タグが機能しない理由はわかりませんが、拡張機能で機能させることができませんでした。うまくいけば、ここにいる他の誰かが説明とおそらく回避策を与えることができるでしょう。

于 2012-09-06T17:37:25.697 に答える
0

「!important」オーバーライド属性を明確にして、拡張機能を壊すことができると思います。私は100%ではありませんが、この属性はセキュリティの複雑さを伴う問題には許可されていないと思います。これを明確にするのに役立つ可能性のある別のSOスレッドへのリンクがあります。

CSSがコンテンツスクリプトから挿入されていません

この記事を読んだことから、マニフェストファイルでコンテンツスクリプトを指定するときに!importantオーバーライドを使用する必要があると思います。それ以外の場合、cssが注入されている場合は!importantは必要ありません。繰り返しますが、これは100%ではありません。

于 2012-09-07T07:18:00.817 に答える