Iframes Dinâmicos
Ao ser carregado, o Hand Talk plugin faz uma varredura na página buscando iframes e adicionando os listeners necessários para identificar o conteúdo de um elemento. Em casos de iframes que são construídos dinâmicamente, deve ser utilizada a função addListenersToIframes() para buscar novamente por iframes, ou addListenersToIframe(iframe) para um iframe especifico.
Veja o exemplo abaixo.
Caso esteja atualizando o src de um iframe que já possui os listeners de clique, considere remover os listeners com os métodos removeListenersFromIframes() ou removeListenersFromIframe(iframe) para um iframe especifico. Após o carregamento do novo conteúdo, adicione os listeners novamente.
Observações sobre Iframes
- ✅ O iframe só funcionará se for exclusivamente da mesma origem (mesmo enderenço). Não tendo relação com domínio e subdomínio.
- ✅ Para que o Hand Talk plugin realize a tradução da maneira correta, o conteúdo inserido dentro do iframe deve ser construido com elementos HTML semânticos.
- ✅ O Hand Talk Plugin não irá capturar elementos traduzíveis (textos e imagens) contidos no iframe implementados dentro de outro iframe. Nesse tipo de disposição do conteúdo cria uma limitação técnica que impede o funcionamento do plugin.
- ✅ É importante observar que o conteúdo renderizado no iframe deve ter o mesmo domínio do site no qual está inserido. Caso contrário o Plugin não irá funcionar, pois os navegadores aplicam um bloqueio Cross-Origin Resource Sharing - CORS que impede a interação do Plugin com o conteúdo, inviabilizando a tradução.
Exemplo de Compatibilidade com Iframes Dinâmicos
Javascript
var ht = new HT({
// Troque por seu token de acesso
token: "TOKEN"
});
// Aguarda 3 segundos e insere um iframe na página
window.setTimeout(function() {
// Cria o iframe e adiciona na pagina
var iframe = document.createElement("iframe");
document.body.appendChild(iframe);
//Define o conteúdo do iframe
iframe.contentDocument.write("<div>Olá mundo!</div>");
// Adiciona os listeners no iframe
ht.addListenersToIframe(iframe);
// Ou utilize
// ht.addListenersToIframes();
// Para fazer a varredura na página inteira novamente
}, 3000);
HTML
<body>
<!-- Pega a ultima versão do plugin Hand Talk -->
<script src="https://plugin.handtalk.me/web/latest/handtalk.min.js"></script>
<script>
var ht = new HT({
// Troque por seu token de acesso
token: "TOKEN"
});
// Após 3 segundos cria um iframe
window.setTimeout(function() {
// Cria o iframe e adiciona na pagina
var iframe = document.createElement("iframe");
document.body.appendChild(iframe);
// Define o conteúdo do iframe
iframe.contentDocument.write("<div>Olá mundo!</div>");
// Adiciona os listeners no iframe
ht.addListenersToIframe(iframe);
// Para buscar iframes e adicionar os listeners, utilize:
// ht.addListenersToIframes();
}, 3000);
</script>
</body>