2016-08-30 4 views
0
chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) { 
    if (changeInfo.status == 'complete' && tab.active) { 
    chrome.tabs.query({active: true,lastFocusedWindow: true}, function(tabs) { 
    var tab = tabs[0]; 
    if(tab.url.indexOf("local")>-1){ 
     function(tab){ 
     alert("Test"); 
     chrome.tabs.executeScript(null,{code:"document.body.style.backgroundColor='yellow'"}); 
     console.log("injected"); 
    } 
} 
     } 

    } 
}); 

にコードを挿入するためにこれはmanifest.jsonを次のとおりです。クローム拡張いくつかの定義済みのURL

{ 
    "manifest_version": 2, 
    "name": "Environment Locator", 
    "description": "My Extension", 
    "version": "1.0", 

    "permissions": [ 
    "tabs" 
     ], 

    "background": { 
    "scripts": ["background.js"] , 
    "persistent": false 
    } 
} 

私はそのURLにいくつかの定義済みの文字列を含むページへのChromeの拡張機能を使用して、いくつかのjsのコードを挿入します。 1.このコードをすべてのページに表示します。タブが更新されると、URLを再度確認する必要があります。 2.ユーザーのクリックなしで内線番号が実行されます。いいえポップアップ。

+0

このコードはbackground.jsです。それは動作しません!そのスクリプトは私が注入したいコードのすべてではないので、コードの代わりにfile.jsを使用しました。それはどちらもうまくいかなかった。 – Zahra

+0

さて、コードは大丈夫ですが、lastFocusedの代わりに 'currentWindow:true'を使用します。あるいは、単に 'tab.url'を使うだけです。あなたのマニフェストである可能性があります.jsonが間違っています。 – wOxxOm

+0

これは使用マニフェストファイル:{ "manifest_version":2、 "名前": "環境ロケータ"、 "説明": "私の拡張"、 "バージョン": "1.0"、 「権限":[ "タブ" ]、 "背景":{ "スクリプト":[" background.js "]、 "" 永続:偽 }} – Zahra

答えて

2

コンテンツスクリプトが背景ページのスクリプト内に注入された場合には、マニフェストの"permissions"は、すべてのサポートされているURLの注入を可能にするために、allowed urls、または"<all_urls>"が含まれている必要があります。バックグラウンドページを使って拡張機能を開発する場合は、the background page debuggerを使用する必要があります。この場合、すぐに不足しているアクセス権に関するエラーが表示されます。

また、変更する唯一のものがCSSスタイルの場合、背景ページはまったく必要ありません。

"content_scripts": [{ 
    "matches": ["*://*/*local*"], 
    "css": ["style.css"], 
    "run_at": "document_start" 
}], 

とのstyle.css:
は、URLのパス部分で*local*とページ上で実行されますmanifest.jsonをしてcontent scriptを宣言

body { 
    background-color: yellow !important; 
} 
+0

おかげで、私はそれに応じてコードを変更します。しかし、変更はCSSスタイルだけではなく、最も簡単なものを使ってテストしました。コンテンツスクリプトとマッチを使用して許可されたURLを制限していました。私はそれをそうすることができませんでした。 – Zahra

+0

私はバックグラウンドファイルを変更しました。興味のあるURLを取得することができました。もうひとつ前進:)これで、目的のページのDOMを修正しています。私の最初の注意は、そのページに関するいくつかの情報を表示するカスタマイズされた水平バーを追加することでした。私はどの項目を追加すべきか分からない。テストとして、私はボタンを追加し、それは正常に動作します。水平バーはちょっと私が推測するテーブルだと思います。 – Zahra

+0

StackOverflowはフォーラム/チャットではなく、QAの知識データベースなので、質問する内容はまったく別の話題です。問題の説明を読んでも問題は何もわかりません二度。それを解決しようとすると、適切に質問を投稿してください:必要なすべての情報を誰でも読んで、野生の推測を撮影する必要はありません。 – wOxxOm

関連する問題