我正在开发一个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中,并应该允许用户对其进行进一步的编辑。任何帮助,将不胜感激。
答案 0 :(得分:1)
在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";