0

特定の Web ページのタブ キーを変更する単純なクロム ユーザー スクリプトがあります。chrome v27が来るまで、これはうまくいきました。これはコードです:

script.js:

// ==UserScript==
// @name           Name
// @namespace      http://www.someNameSpace.com/
// @description    Description
// @include        http://weburl1.com/*
// @include        http://weburl2.com/*
// ==/UserScript==

function key_event(event){
    if(event.keyCode == 9){    //get tab pressed 
         /* do something here */
    }
}
document.addEventListener("keydown", key_event, true);

マニフェスト.json:

{
   "content_scripts": [ {
      "all_frames" : true,
      "exclude_globs": [  ],
      "include_globs": [ "http://weburl1.com/*", "http://weburl2.com/*" ],
      "js": [ "script.js" ],
      "matches": [ "http://*/*", "https://*/*" ],
      "run_at": "document_idle"
   } ],
   "converted_from_user_script": true,
   "description": "Description",
   "key": "kVJUyHgHhlZtX2koEeV1ZF7yYHXfLyCyprC+I18+QzI=",
   "name": "Name",
   "version": "1.01"
}

編集:スクリプトはまだ実行されていますが、最初にロードされたフレームでのみ実行されていることがわかりました。だから私は追加しました

「all_frames」: 真、

機能しなかったマニフェストに。

それについて私ができることはありますか?ご協力いただきありがとうございます

4

2 に答える 2

0

コンテンツ スクリプトは、現在のページと同じコンテキストではありません。別のタグを介してイベント ハンドラーを挿入する必要があります

var actualCode = 'function key_event() {'
               + '    if(event.keyCode == 9){'
               +     'alert('tab');
               + '}';

var script = document.createElement('script');
script.textContent = actualCode;
(document.head||document.documentElement).appendChild(script);
script.parentNode.removeChild(script);
于 2013-05-27T20:12:06.137 に答える