Visibilidade de script inclui em um IFRAME
-
19-08-2019 - |
Pergunta
Por exemplo:
script.js:
function functionFromScriptJS() {
alert('inside functionFromScriptJS');
}
Iframe.html:
<html>
<head>
<script language="Javascript" src="script.js"></script>
</head>
<body>
<iframe>
<body>
<script language="JavaScript">
functionFromScriptJS();
</script>
</body>
</iframe>
</body>
<html>
A chamada acima para functionFromScriptJS () não está funcionando.
Os parent.functionFromScriptJS primeira suposição () não está funcionando também.
É possível acessar uma função tão externa de um iframe quando o incluem não está no próprio iframe mas no documento pai?
@EDIT: Então, meu erro foi que eu coloquei o documento dentro da tag iframe, e eu sould ter colocá-lo em um arquivo separado e especificado através do attrubute src da tag. Neste caso, parent.functionFromScriptJS () obras.
Solução
Iframes não suportam conteúdo em linha. você deve usar o atributo src para fazer referência a um arquivo diferente. O texto interno do tag <iframe>
será exibido para os navegadores que não suportam iframes.
Exemplo:
<iframe src="someFile.html" width="100%" height="300px">
<p>Your browser does not support iframes.</p>
</iframe>
Depois de ter seu carregamento da página, então você deve ser capaz de chamar o script usando parent.functionFromScriptJS();
Outras dicas
A melhor solução aqui eu acho que seria não usar um iframe (embora não formalmente obsoleta, ele não aparece na XHTML 1.1 especificação) e usar um AJAX chegar a agarrar a página e carregá-lo em um <div>
Depois funções javascript funcionará como normal!