0

拡張ドキュメントを見た後、トリックを実行する小さな拡張を作成しましたが、効果がないようです。他に何が必要かわかりません。それとも、Gmail は特別なページで、ロード プロセス中に挿入されたスタイルシートを何らかの方法で破棄するのでしょうか?

これが私がこれまでに持っていたものです:

x.css:

/*html for extra specificty*/
/*this class is applied to the compose button*/
html .T-I-KE {
  background-image: -webkit-linear-gradient(top,#555,#333);
  background-image: linear-gradient(top,#555,#333)
}

マニフェスト.json:

{
  "name": "A Compose Button as Dark as my Soul",
  "version": "1.1",
  "manifest_version": 2,
  "description": "I’m so depressed.",
  "content_scripts": [
    {
      "matches": ["http://mail.google.com/*", "https://mail.google.com/*"],
      "css": ["x.css"]
    }
  ]
}

どうしたんだ?

4

2 に答える 2

1

Gmail は Chrome Webstore のような「特別なページ」ではなく、CSS を挿入できます。たとえば、「標準 HTML」ページをチェックアウトして、次のようなbody { background-color: #f00; }ことを試してみてください。

変更したいボタンは iFrame 内にcanvas_frameあることに注意してください。それが理由かもしれません。これも機能することに注意してください。

#canvas_frame {
  width: 50%;
}

「 CSS を iFrame に適用する方法」への回答が役立つかもしれません。少し試してみましたが、まだ機能していませんが、これで正しい方向に進むことができます。

(ところで、あなたは CSS で a を忘れました;が、それが機能しない理由ではないようです。単に言及したかっただけです)

于 2012-06-24T22:32:52.460 に答える
0

この拡張機能では、コンテンツ スクリプトを使用してページをスキャンし (URL に基づいて、特定のサイトのみをスキャンします)、変更したい要素を探します。たとえば、YouTube のコメントを調べて、感情分析スコアに従って色を変更します。

このような手法では、特定のボタンにクラスを追加して、そのように変更できます。

ここにスニペットがあります

if (location.href.indexOf('youtube.com') != -1) {
    if (data.indexOf('neg') != -1) {
        $('.comment-text:contains('+data.substring(4)+')').each(function(index) {
            var active_el = $(this)[index];
            chrome.extension.sendRequest({id: "sense_color"}, function(local) {
                active_el.style.color="#"+local;
            });
            selectText($(this)[0]);
        });
    }
于 2012-06-24T22:10:11.780 に答える