2

バックグラウンドスクリプトbackground.jsから新しいタブを開き、この新しいタブにバックグラウンドスクリプトで得たテキストを表示しようとしています。私はちょうど空白のHTMLテンプレートですtemplate.htmlファイルを使用して、新しいタブを作成するために、chrome.tabs.create({ url: "template.html" });を使用しています:Chrome拡張機能:新しく作成したクロムタブにHTMLを追加するにはどうすればよいですか?

background.jsでは、私は新しいタブページに追加するテキストが含まれてい textという変数を持って
<html lang="en"> 
    <head> 
     <meta charset="utf-8"> 
     <title>Testing</title> 
    </head> 
    <body> 
    </body> 
</html> 

、私はそれをどのように追加するか分からない。私はchrome.tabs.executeScript(tab.id, {file: 'template.js'});を使用してtemplate.htmlに私のスクリプトtemplate.jsを実行しようとすると、私はそれがテキストを追加するための新しいタブページにスクリプトを実行する上で動作するかもしれないと思った

は、しかし、私は次のエラーを取得する:

Unchecked runtime.lastError while running tabs.executeScript: Cannot access contents of url "chrome-extension://*/template.html". Extension manifest must request permission to access this host. 

新しいタブには拡張子がアクセスできないURL chrome-extensions://*/template.htmlがあるため。

タブページにテキストやHTMLを追加する方法がわかりません。これについての助けに感謝します。ありがとうございました。

+1

エラーが発生した場合、manifest.jsonに正しい権限設定がないことがわかります。これを確認しましたか? –

+0

はい、 'manifest.json'の' permissions: 'に' *:// */* 'と' 'を追加しましたが、それでも私には同じエラーが表示されます。 – Nick

+1

最初に「タブ」もありますか? https://developer.chrome.com/extensions/content_scriptsがない場合はこのページをチェックしてください –

答えて

3

chrome.tabs.executeScriptchrome-extension:ページに使用することはできません。有効なスキームはhttphttpsfileftpです。

とにかく、必要はありません。スクリプトタグを使用してhtmlに実行するファイルを含めることができます。ただ、template.htmlに次の行を追加します

<script src="template.js"></script> 

注たとえば、あなたがこのページと背景ページ間の通信にメッセージングを使用できるように、このような拡張ページにあなたは、フルchrome.*のAPIへのアクセス権を持っていること。

+1

ありがとうございました、あなたが述べたように、 'template.js'を' template.html'に直接インクルードすることができました。私は 'template.js'から' template.html'へのテキストを、 'background.js'からchrome APIメッセージ経由でテキストを送ることで注入することができました。 – Nick

関連する問題