将 div 从父网站复制到 iframe 中的文本区域

Copy div from parent website to a textarea in iframe

在 Google 翻译器中,我制作了 Google Translate with

的第二个实例
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 getRef = document.getElementById("gt-c");
var parentDiv = getRef.parentNode;
parentDiv.insertBefore(makediv, getRef);

我正在尝试将文本从第一个实例的 auto-correction 复制到第二个实例的文本区域:

我正在尝试这个(如果我只是在 Chrome 检查器中复制 html,则此代码有效{使用 [0] 或 [1] 到 select 具有相同元素的元素IDs},但是只能使用带有 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);

但是控制台说它无法读取属性 "document" of undefined at eval,并说问题出在这一行:

  TheiFrameInstance.contentWindow.document.querySelectorAll("#source").value = childAnchors1.textContent;

我试过嵌入另一个网站,但也没有用。我还尝试通过 "iframenaturalID" 调用 iframe,并尝试在没有 contentWindow 的情况下编写 TheiFrameInstance.contentWindow.document.querySelectorAll,但似乎没有任何效果。 如果有任何帮助,我将不胜感激。

最近尝试访问 iframe 时遇到类似问题。不幸的是,如果它是跨域的,这是不可能的。阅读更多:Get element from within an iFrame

希望对您有所帮助。

好的,我用另一种创建 iframe 的方法让它工作:

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)

并且(将文本内容从更正 div 复制到 iframe 文本区域):

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;。虽然这不是什么大问题,但仍然很奇怪 returns 这个错误...