0

Chrome プラグインでは、バックグラウンド スクリプトを使用して、次の方法でスタイルを挿入します。

if(!styleLeft){
    var styleLeft = document.createElement("style");
    document.head.appendChild(styleLeft);
    styleLeft.innerHTML = "a, .left-hand { cursor: wait; }";
}

ただし、スタイル タグが既にページにある場合、if は機能しません。自分の特定のスタイルを探すにはどうすればよいですか?

ありがとう。

4

3 に答える 3

2

styleLeftこのチェックでは、必ずグローバル スコープまたは外部スコープで宣言してください。それ以外の場合は、スコープの最後で破棄するだけで、反復ごとに新しい空の変数が作成されます。

于 2012-06-06T09:37:39.940 に答える
1

ID を確認します。例:

if ( !!document.getElementById( 'a-long-id-that-will-never-collide' ) ) {
    var styleLeft = document.createElement("style");

    // Set the ID so that you can check for it later
    styleLeft.id = 'a-long-id-that-will-never-collide';

    document.head.appendChild(styleLeft);
    styleLeft.innerHTML = "a, .left-hand { cursor: wait; }";
}
于 2012-06-06T09:46:38.510 に答える
0

解析できますdocument.styleSheets(Chromeプラグインでアクセスできるはずですが、100%確実ではありません)。注入するすべてのスタイルに一意のタイトルを付けると、すでに注入したスタイルを簡単に見つけることができます。

var styleLeft = document.createElement("style");
styleLeft.setAttribute("title", "<a unique id>");
document.head.appendChild(styleLeft);
styleLeft.innerHTML = "a, .left-hand { cursor: wait; }";
document.head.appendChild(styleLeft);

これで、の最後のエントリにdocument.styleSheets.title属性があります。それがあなたのものであるかどうかを確認するために使用できます。

于 2012-06-06T09:49:08.200 に答える