私はLinkedinにhtmlを挿入するクロム拡張を開発しています。私がJsファイルから$(document.body).append($("<div>"));
を実行すると、ページにあるIframeコンポーネントも追加されます。コンソールに$(document.body)
と入力すると、本体のみが返されます。 jsファイルから本体のみに制限するにはどうすればよいですか?document.body iframe bodyを返す
私のマニフェストファイル:
{
"manifest_version":2,
"name": "Hawk! Beta",
"description": "Hawk",
"version": "1.0",
"permissions": [
"activeTab",
"tabs",
"storage",
"https://ajax.googleapis.com/",
"https://*.ngrok.io/"
],
"icons": {
"16": "img/icon.png",
"48": "img/icon.png",
"128": "img/icon.png"
},
"browser_action": {
"default_icon": {
"19": "img/icon.png",
"38": "img/icon.png"
}
},
"background": {
"scripts": [
"js/lib/jquery.min.js",
"js/lib/asteroid/ddp.js",
"js/lib/asteroid/q/q.js",
"js/lib/asteroid/asteroid/dist/asteroid.chrome.js",
"js/lib/asteroid/asteroid/dist/plugins/facebook-login.js",
"js/lib/asteroid/asteroid/dist/plugins/google-login.js",
"js/lib/asteroid/asteroid/dist/plugins/github-login.js",
"js/lib/bootstrap.min.js",
"js/background.js"
]
},
"content_scripts": [
{
"matches": [
"https://www.linkedin.com/*"
],
"all_frames" : true,
"match_about_blank": true,
"js": [
"js/lib/jquery.min.js",
"js/lib/handlebars.js",
"js/content_scripts/getPagesSource.js"
],
"css":[
"css/custom.css"
]
}
],
"web_accessible_resources": [
"img/*",
"js/*",
"js/lib/*",
"css/custom.css",
"html/*"
]
}
私はhtmlの
function injectHtml(){
console.log(document.body); //this returns 2 bodies
$(document.body).append($("<div>", {
"class": "myapp-container"
}));
}
を注入するために使用されるコード私は本体のみにしていないのiframe体内に注入します。
だけでなく、あなたがIFRAMEやコンテンツよりを選択する必要があります。 – epascarello
あなたのスクリプトのようなサウンドは、トップレベルのページと同様にiframeに注入されています。あなたのマニフェスト設定は何ですか、注入できる場所を制限しましたか? –
* manifest.json *ファイルやコンテンツスクリプトをページに挿入するために使用しているコードを含めて質問を編集してください。この情報はあなたの質問に答えるために必要です。この情報がなければ、デバッグの質問に必要な[mcve]は提供していません。 [mcve]のポイントは問題を複製することができるためです(つまり、問題/解決策が何であるかを推測するのに十分な情報があるためです)。あなたの* manifest.json *を追加したとき、あなたのコンテンツスクリプトをどのように注入しているのか、コメントに残してください(コメントに '@ Makyen'を含めてください)。 – Makyen