Вопрос, связанный с этой проблемой с проблемой iframe: Скопировать div с родительского веб-сайта в текстовое поле в iframe
Я пытаюсь скопировать InnerHtml из div в TextArea. Я сделал два экземпляра переводчика Google на одной веб-странице, и я пытаюсь применить автокоррекцию первого экземпляра ко второму экземпляру, не меняя первый textarea
.
Я пробовал другой код:
setInterval(function() {
childAnchors1 = document.querySelectorAll("#spelling-correction > a")[0];
$("#source")[1].val(childAnchors1.text());
}, 100);
setInterval(function copyText() {
$(".goog-textarea short_text")[1].val($("#spelling-correction > a")[0].innerText());
}
, 100);
setInterval(function copyText() {
$("#source")[1].val($("#spelling-correction > a")[0].innertext());
}
, 100);
setInterval(function() {
var finalarea = document.getElementsByClassName("goog-textarea short_text")[1];
var correction = document.querySelectorAll("#spelling-correction > a")[0].innerHTML
document.getElementsByClassName("goog-textarea short_text")[1].value = correction.innerText;
}, 100);
onclick='document.getElementsByClassName("goog-textarea short_text")[1].innerHTML=document.getElementById("spelling-correction > a")[0].innerHTML;'
Но, похоже, ничего из этого не работает,к сожалению ...
Буду очень признателен за любую помощь.
Я должен был упомянуть об этом.Я использовал iframe для создания второго экземпляра, поэтому простые решения не работают ... Вот код, который я использовал для создания экземпляра iframe:
var makediv = document.createElement("secondinstance");
makediv.innerHTML = '<iframe id="iframenaturalID" width="1500" height="300" src="https://translate.google.com"></iframe>';
makediv.setAttribute("id", "iframeID");
var NewTranslator = document.getElementById("secondinstance");
var getRef = document.getElementById("gt-c");
var parentDiv = getRef.parentNode;
parentDiv.insertBefore(makediv, getRef);
Я пытался использовать это для связи между iframe иродительский веб-сайт:
setInterval(function() {
var childAnchors1 = window.parent.document.querySelectorAll("#spelling-correction > a");
var TheiFrameInstance = document.getElementById("iframeID");
TheiFrameInstance.contentWindow.document.querySelectorAll("#source").value = childAnchors1.textContent;
}, 100);
Но это не работает ...
Хорошо, я заставил его работать с:
var a = document.createElement('iframe');
a.src = "https://translate.google.com";
a.id = "iframenaturalID";
a.width = "1000";
a.height = "500";
document.querySelector('body').appendChild(a)
И
let iframe = document.getElementById("iframenaturalID");
setInterval(function() {
let source = iframe.contentWindow.document.getElementById("source");
let destination = window.parent.document.querySelector("#spelling-correction > a");
source.value = destination.textContent;
}, 100);
Теперь он делает то, что я пытался сделать, однако я все равно получаю сообщение об ошибке: Uncaught TypeError: Cannot set property 'value' of null
at eval
, которое указывает на эту строку: source.value = destination.textContent;
.Это не большая проблема, но все же странно, что она возвращает эту ошибку ...
Хорошо, я смог решить ее, добавив setTimeout
.