クロムエクステンションがあります。私は現在のページのHTMLソースから分析する必要があります。バックグラウンドページとコンテンツスクリプトであらゆる種類のソリューションを見つけましたが、何も私を助けませんでした。
manifest.jsonを::現在のページのソースHTMLをクロムエクステンションから取得する
{
"name": "Extension",
"version": "1.0",
"description": "Extension",
"browser_action": {
"default_icon": "bmarkred.ico",
"popup": "Test.html"
},
"content_scripts": [
{
"matches": ["http://*/*"],
"js": ["content.js"]
}
],
"background": {
"page": "backgroundPage.html"
},
"permissions": [
"cookies",
"tabs",
"http://*/*",
"https://*/*"
]
}
background.html:
<html>
<head>
<script type="text/javascript">
try {
chrome.tabs.getSelected(null, function (tab) {
chrome.tabs.sendRequest(tab.id, {action: "getSource"}, function(source) {
alert(source);
});
});
}
catch (ex) {
alert(ex);
}
</script>
</head>
</html>
content.js:
chrome.extension.onRequest.addListener(function(request, sender, callback) {
if (request.action == "getSource") {
callback(document.getElementsByTagName('html')[0].innerHTML);
}
});
アラートは常に未定義の警告をここに私はこれまで持っているものです。 content.jsファイル内でコールバック関数を変更しても:
callback('hello');
でも同じ結果になります。何が間違っているのですか?多分これを間違った方法で行っています。本当に必要なのはこれです。ユーザーが拡張ポップアップを開くと(そしてそのときだけ)、現在のページのHTMLが必要なので、解析することができます。助言がありますか?
問題(コンテンツのスクリプトが注入される前に)あなたの背景ページ内のコードがすぐに実行されていることです。非常によく似た/重複した質問が以前に尋ねられました。その答えを[新しいGoogle Chromeタブを開いてソースを入手する]で見てください(http://stackoverflow.com/a/10162291/938089?open-a-new-google-chrome-tab-and-get-起源)。 –
あなたの返信に感謝します。私はあなたの添付リンクのコードセグメントをコピーしましたが、それでも動作しません。問題は、私の拡張機能がポップアップであり、ユーザーが自分の拡張機能を開くときだけHTMLを取得する必要があるということです。たとえば、現在のタブがfacebook.comの場合、私の拡張機能を開くときだけ、HTMLソースをjsファイル(コンテンツスクリプトやバックグラウンドページではない)に取得します。 –
質問をあなたの現在のコードで更新してください。コードには、問題を強調するコメントが含まれていなければなりません。 –