2016-03-10 14 views
5

Google Chrome'da 2 uzantı yüklendiğini varsayalım.İçerik komut dosyası, başka bir uzantı sayfasındaki iframe'de çalışmıyor

manifest.json:

"content_scripts": [{ 
    "matches": [ "https://www.w3.org/*" ], 
    "all_frames": true, 
    "js": [ "content.js" ] 
}] 

content.js:

alert('content'); 

2 uzatma sahiptir


1 uzatma W3.org üzerinde content.js çalıştırır w3.org'u iframe'e yükleyen page.html:

manifest.json:

"web_accessible_resources": ["page.html"] 

sayfa.html:

<!DOCTYPE html> 
<iframe src="https://www.w3.org/"></iframe> 

Şimdi adres çubuğuna chrome-extension://2nd-extension-id/page.html girin. W3.com'u göreceksiniz, ancak content.js çalışmıyor (alert() penceresi). Konsolda hata görmüyorum.

Sorun şudur: içerik komut dosyasının bu iframe'de çalışmasına nasıl izin verilir?


Ben Chrome issue yarattı. Durum: WontFix, maalesef. Ama bu uzantılara sahip ... gelecekte yapabilirsiniz

+0

Yapamazsınız. Uzantılar başka uzantılarda çalıştırılamaz. Böyle bir şeye izin vermek, kötü niyetli uzantıların çok kötü şeyler yapmasını mümkün kılar. –

+0

@Marc Guiselin, no. w3.org, uzantının bir parçası değildir ve standart izinlerle kendi bağlamında çalışmaktadır. – CoolCmd

cevap

-1

değiştirilebilir ancak Google Apps şey benzer yapabilirdi: Eğer iframe yerine webview kullanabilirsiniz . Bu nedenle, executeScript yöntemiyle komut dosyası enjekte edebilirsiniz.

+1

Ancak, "" yalnızca Chrome Uygulamaları için değil uzantılarda kullanılabilir. – Xan

İlgili konular