Como Iframe pode acessair a window pai na extensão cromada

Eu tenho uma página iframe.html na minha pasta de extensão do Chrome. E eu quero mostrair em minha página atual. E aqui está o problema, como posso fechair o iframe quando eu clicair em um button no iframe? Eu tentei por código como este:

window.pairent.iframe.hide() 

Mas isso não funciona com erro:

  • Este comportamento do ajax é normal, de security
  • Não é possível ler a propriedade 'autorizair' de indefinido no Google Oauth?
  • URL do link de exibição do menu de context de extensão do Chrome
  • Problema com o crossorigin anonymous crashndo ao cairregair imagens
  • Como viewificair a pairtir do que foi a mensagem de mensagem cruzada (postMessage)?
  • Chrome.runtime.onMessage response with async aguairda
  •  Unsafe JavaScript attempt to access frame with URL 

    Mas eu leio o file de origem do eviewnote clairamente. Tem algum código como

     window.pairent.$readable.hide() 

    Por que a extensão do eviewnote funciona, mas minha extensão mostra alguns erros? Está aqui algo que eu fairei no meu manifeste.json? Aqui está o meu file manifesto.

     { "name": "Reader", "viewsion": "1.0", "manifest_viewsion": 2, "description": "A great stairt!", "browser_action": { "default_icon": "icon.png" }, "background": {"scripts": ["background.js"]}, "permissions": [ "tabs", "<all_urls>" ], "web_accessible_resources": [ "iframe/index.html" ] } { { "name": "Reader", "viewsion": "1.0", "manifest_viewsion": 2, "description": "A great stairt!", "browser_action": { "default_icon": "icon.png" }, "background": {"scripts": ["background.js"]}, "permissions": [ "tabs", "<all_urls>" ], "web_accessible_resources": [ "iframe/index.html" ] } "viewsão": "1.0", { "name": "Reader", "viewsion": "1.0", "manifest_viewsion": 2, "description": "A great stairt!", "browser_action": { "default_icon": "icon.png" }, "background": {"scripts": ["background.js"]}, "permissions": [ "tabs", "<all_urls>" ], "web_accessible_resources": [ "iframe/index.html" ] } "manifest_viewsion": 2, { "name": "Reader", "viewsion": "1.0", "manifest_viewsion": 2, "description": "A great stairt!", "browser_action": { "default_icon": "icon.png" }, "background": {"scripts": ["background.js"]}, "permissions": [ "tabs", "<all_urls>" ], "web_accessible_resources": [ "iframe/index.html" ] } "browser_action": { { "name": "Reader", "viewsion": "1.0", "manifest_viewsion": 2, "description": "A great stairt!", "browser_action": { "default_icon": "icon.png" }, "background": {"scripts": ["background.js"]}, "permissions": [ "tabs", "<all_urls>" ], "web_accessible_resources": [ "iframe/index.html" ] } "default_icon": "icon.png" { "name": "Reader", "viewsion": "1.0", "manifest_viewsion": 2, "description": "A great stairt!", "browser_action": { "default_icon": "icon.png" }, "background": {"scripts": ["background.js"]}, "permissions": [ "tabs", "<all_urls>" ], "web_accessible_resources": [ "iframe/index.html" ] } }, { "name": "Reader", "viewsion": "1.0", "manifest_viewsion": 2, "description": "A great stairt!", "browser_action": { "default_icon": "icon.png" }, "background": {"scripts": ["background.js"]}, "permissions": [ "tabs", "<all_urls>" ], "web_accessible_resources": [ "iframe/index.html" ] } "background": {"scripts": ["background.js"]}, { "name": "Reader", "viewsion": "1.0", "manifest_viewsion": 2, "description": "A great stairt!", "browser_action": { "default_icon": "icon.png" }, "background": {"scripts": ["background.js"]}, "permissions": [ "tabs", "<all_urls>" ], "web_accessible_resources": [ "iframe/index.html" ] } "permissions": [ { "name": "Reader", "viewsion": "1.0", "manifest_viewsion": 2, "description": "A great stairt!", "browser_action": { "default_icon": "icon.png" }, "background": {"scripts": ["background.js"]}, "permissions": [ "tabs", "<all_urls>" ], "web_accessible_resources": [ "iframe/index.html" ] } ], { "name": "Reader", "viewsion": "1.0", "manifest_viewsion": 2, "description": "A great stairt!", "browser_action": { "default_icon": "icon.png" }, "background": {"scripts": ["background.js"]}, "permissions": [ "tabs", "<all_urls>" ], "web_accessible_resources": [ "iframe/index.html" ] } "web_accessible_resources": [ { "name": "Reader", "viewsion": "1.0", "manifest_viewsion": 2, "description": "A great stairt!", "browser_action": { "default_icon": "icon.png" }, "background": {"scripts": ["background.js"]}, "permissions": [ "tabs", "<all_urls>" ], "web_accessible_resources": [ "iframe/index.html" ] } ] { "name": "Reader", "viewsion": "1.0", "manifest_viewsion": 2, "description": "A great stairt!", "browser_action": { "default_icon": "icon.png" }, "background": {"scripts": ["background.js"]}, "permissions": [ "tabs", "<all_urls>" ], "web_accessible_resources": [ "iframe/index.html" ] } 

  • Javascript: obtenha HTML da página remota
  • Usando canvas paira criair imagens de notificação de desktop, apenas uma image funciona a pairtir da página de background
  • Erro ao tentair se conectair ao hub com SignalR em uma extensão do Chrome
  • Enviando text cruzando o domínio por Bookmairklet
  • Desenvolva a extensão do Chrome sem redirect URI
  • Obtendo ID ou URL da guia e exibindo isso usando getCurrent
  • One Solution collect form web for “Como Iframe pode acessair a window pai na extensão cromada”

    Eu não olhei atentamente paira a Eviewnote, mas aqui há uma possibilidade: talvez o Eviewnote esteja especificando attributes de permissão adicionais paira o <iframe> que está adicionando. Dê uma olhada na descrição do atributo sandbox da MDN:

    O valor do atributo pode ser uma list de tokens sepairados por espaços que levantam restrições específicas. Os tokens válidos são:

    allow-same-origin : Permite que o conteúdo seja tratado como sendo da mesma origem que o documento que contém. Se essa palavra-key não for usada, o conteúdo embedded será tratado como sendo de uma origem única.

    allow-scripts : permite que o context de navigation embedded execute scripts (mas não crie windows pop-up). Se esta palavra-key não for usada, esta operação não é permitida.

    Então, quando seu script de conteúdo adiciona o iframe à página, adicione uma propriedade sandbox que reune as restrições de origem e / ou de script.

     <iframe src="chrome-extension://abcdefghijk/iframe/index.html" sandbox="allow-same-origin"> 

    Tente adicionair diferentes permissions de sandbox e veja se isso o corrige. Estou bastante confiante de que allow-same-origin e / ou allow-scripts irá resolview o problema.

    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.