2016-03-10 18 views
5

Supponiamo che 2 estensioni siano installate in Google Chrome.Lo script di contenuto non è in esecuzione in iframe all'interno della pagina di un'altra estensione


prima estensione viene eseguito su content.js w3.org:

manifest.json:

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

content.js:

alert('content'); 

seconda estensione ha page.html, che carica w3.org in iframe:

manifest.json:

"web_accessible_resources": ["page.html"] 

page.html:

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

Ora inserire nella barra degli indirizzi chrome-extension://2nd-extension-id/page.html. Vedrai w3.com, ma content.js non era in esecuzione (nessuna finestra alert()). Non vedo errori nella console.

La domanda è: come consentire allo script di contenuto di essere eseguito in questo iframe?


ho creato Chrome issue. Stato: WontFix, sfortunatamente. Ma questo è può essere modificato in futuro ...

+0

Semplicemente non puoi. Le estensioni non possono essere eseguite in altre estensioni. Consentire una cosa del genere renderebbe possibile alle estensioni malevoli di fare cose molto brutte. –

+0

@Marc Guiselin, n. w3.org non fa parte dell'estensione e funziona nel proprio contesto con permessi standard. – CoolCmd

risposta

-1

Non è possibile con le estensioni, ma si potrebbe fare qualcosa di simile in Google Apps: è possibile utilizzare webview invece di iframe. Pertanto, è possibile iniettare script tramite il metodo executeScript.

+1

Tuttavia, '' è disponibile solo per le app di Chrome e non per le estensioni. – Xan

Problemi correlati