gpt4 book ai didi

javascript - 在 contentWindow.document.close() 之后无法编辑 iframe

转载 作者:行者123 更新时间:2023-11-30 19:31:14 25 4
gpt4 key购买 nike

我正在开发一个 chrome 扩展程序,我试图在其中自动填充表单中的字段/值,这样我就不需要明确地键入它。我正在尝试在 window.onload

期间加载内容

window.onload = function() {
alert(document.getElementById('mce_0_ifr'));
alert("Window loaded!");
setTimeout(setText, 2000);
};

function setText() {
/**
This logic of having it as 0 will not work always. When you create the same dialog for
the second time it's incrementing it's value by 1.
**/
alert("Inside set text");
if(document.getElementById('mce_0_ifr') != null) {
var doc = document.getElementById('mce_0_ifr').contentWindow.document;
doc.open();
doc.write('<b> Student details </b>');
doc.write('<br><br> Student Name : ');
doc.write('<br><br> Age : ');
doc.write('<br><br> Class : ');
doc.write('<br><br> Subjects interested : ');
doc.write('<br><br> Extra caricular activities : ');
doc.write('<br><br> Father's name : ');
doc.write('<br><br> Mother's name : ');
doc.write('<br><br> Maid's name : ');
doc.write('')
doc.close();
}
}

执行此操作后,我无法将内容添加到 ID 为 mce_0_ifr 的 iframe。我想在页面加载时将内容(一些默认文本)加载到 iframe 中,并且应该允许用户进一步编辑它。对此的任何帮助将不胜感激。

最佳答案

close() 文档后,它会完成对该文档的写入。为了再次 write() ,您需要再次 open() 它。你的情况,再次打开会丢失之前写入的内容。这就是我所做的。先打开文档,在上面写上基本的HTML结构:

doc.open();
doc.write("<html><head></head><body></body></html>");
doc.close();

现在,您可以通过操作 DOM 而不是直接写入文档来操作文档:

var line=document.createElement("div");
line.innerHTML='<b> Student details </b>';
line.innerHTML=line.innerHTML+'<br><br> Student Name : <span id="student_name"></span>';
line.innerHTML=line.innerHTML+'<br><br> Age : <span id="student_age"></span>';
...
doc.body.append(line);

此外,您可以通过获取 DOM 元素然后更改其值来修改 student_name 和 student_age:

doc.getElementById("student_name").innerText="rm -rf star";
doc.getElementById("student_age").innerText="21";

关于javascript - 在 contentWindow.document.close() 之后无法编辑 iframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56416014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com