5

最初のChrome拡張機能を作成しようとしています。クリックすると、大学のログインページ(フォームの自動入力が無効になっています)のIDとパスワードのフィールドに自動的に入力されます。非常に具体的なページです。

いくつか問題があります。GoogleとSOを検索しましたが、Chromeでテキストフィールドの値を変更する方法についての説明が見つかりませんでした。HTMLとJavaScriptでこれを行う方法は知っていますが、テキストを変更するための適切な入力を取得できませんでした。

また、見つけたいくつかの例を使用してjQueryを使用してみましたが、うまくいきませんでした。JavaScriptファイルを呼び出すHTMLページ(popup.html)があります。また、JSをコンテンツスクリプトに配置してみました

これがmanifest.jsonです:

{
  "name": "My First Extension",
  "version": "1.0",
  "manifest_version": 2,
  "description": "The first extension that I made.",
  "browser_action": {
    "default_icon": "icon.png",
    "default_popup": "popup.html"
  },
  "permissions": [
      "tabs", "http://*/*"
    ],
    "content_scripts": [
      {
        "matches": ["http://*/*"],
        "js": ["jquery-1.7.2.min.js","content.js"]
      }
  ]
}

(popup.htmlから呼び出される)popup.jsの私の試みの1つは次のとおりです。

chrome.tabs.getSelected(null, function(tab) {
    console.log(document)
});

また、このコードをcontent.js内に配置してみました。同じ結果、コンソールに出力されますが、popup.htmlコンテンツが出力されます。

私はまた、直接(そして上記の方法から)要素に直接アクセスしようとしましたdocument.getElementById()が、それでも運がありません。

だから、誰かが私が間違っていることを教えてもらえますか?

4

3 に答える 3

7

「web_accessible_resources」属性を使用して、JavaScriptファイルをページに挿入する必要があります。ここを参照してください:

マニフェスト.json

{
  "name": "My First Extension",
  "version": "1.0",
  "manifest_version": 2,
  "description": "The first extension that I made.",
  "browser_action": {
    "default_icon": "icon.png"
  },
  "permissions": [
      "tabs", "http://*/*"
    ],
    "content_scripts": [
      {
        "matches": ["http://*/*"],
        "js": ["jquery-1.7.2.min.js","content.js"],
        "run_at": "document_start"
      }
  ],
  "web_accessible_resources": ["inject.js"]
}

inject.js

(function () {
    console.log('test');
}());

content.js

(function (chrome) {
    var js = document.createElement('script');
    js.type = 'text/javascript';
    js.src = chrome.extension.getURL('inject.js');
    document.getElementsByTagName('head')[0].appendChild(js);
}(chrome));

次に、使用するJavaScriptコードをinject.jsに配置して、ページを操作します。必ず、大学のログインページにのみ一致するように一致を変更してください。

これが当てはまる理由は、Chrome拡張機能は、どのWebサイトにアクセスしているかに関係なく、独自に実行および操作できるためです。また、ページを切り替えても処理を続行できます。彼らは独自のサンドボックス環境にいます。

于 2012-08-07T19:17:49.820 に答える
0

考えられる回避策(Chrome拡張機能):オートコンプリート=オンですが、一部のフォームでは機能しませんでした。

于 2012-08-07T19:26:14.787 に答える