パスワード入力ボックスにフォーカスしたときに何かを行う、単純なChrome拡張機能を開発しています。私は次のコンテンツスクリプトを使って同じことを達成しています(コードはこの質問のために簡略化されています)。コードはhttps://accounts.google.com/のようなページでは機能しませんが、https://www.linkedin.com/のようなページでは完全に機能します。いくつかのJavascript/JQueryの競合のためですか?それとも別の理由?助けてください。私はnoConflict APIを使ってみましたが、それは助けになりませんでした。Google Chrome拡張機能のコンテンツスクリプトが少数のページで機能しない
コンテンツスクリプト:スクリプトの上
var inputs = document.getElementsByTagName('input');
function foo() {
for (var i = 0; i < inputs.length; i++) {
if (inputs[i].type.toLowerCase() == 'password')
inputs[i].addEventListener("focus", bar);
}
}
function bar() {
alert(1);
}
foo();
はタイプのパスワードの入力要素が見つかったが、イベントリスナーを追加しません。
マニフェスト:
{
"manifest_version": 2,
"name": "MyExtension",
"version": "1.0",
"options_page": "options.html",
"browser_action": {
"default_icon": "img/abcd.png",
"default_title": "MyExtension",
"default_popup": "popup.html"
},"icons": { "16": "img/abcd16.png",
"48": "img/abcd48.png",
"128": "img/abcd128.png" },"description":"abcd abcd",
"permissions": [
"storage","tabs"
],
"content_scripts": [
{
"matches": ["<all_urls>"
],
"js": ["js/content.js","js/jquery.1.8.3.min.js"],
"css": ["css/style.css"],
"run_at": "document_end",
"all_frames": true
}
],"web_accessible_resources": [
"img/*.png",
"css/*.css"
]
}
'manifest.json'も提供できますか? 'matches'フィールドに' google'を宣言すると、上記のコードはうまくいくはずです。 –
私は一致フィールドにと宣言しました。私は大丈夫のために働くべきですか? linkedinやtwitterのようなサイトのために働いています! –
実際、私はちょうど私の最後にそれをテストした、それはまた、パスワード入力がある限り、Googleのためにうまくいく。 –