我想列出所有表单元素 (包括 FORMs里面 嵌套FRAME 或 IFRAME HTML文档中的)。
列表如下:
页面形式:(1)www.example.com
页面形式:(1)(1)www.example.com/IFramePage.htm
页面形式:(1)(1)(1)www.example.com/Nested/NestedIFramePage.htm
页面表格:(1)(2)www.example.com/IFramePage.htm
等
请使用正确/修改的JavaScript代码来执行此操作。
我正在探索以下代码,但它失败了:
var sFormNames = '';
function getFormsNamesForAnyDoc(objDoc) {
var arrForms = objDoc.Forms;
sFormNames += '\n\n List of Forms for WebPage' + objDoc.location.href + '\n';
for (k = 0; k < objForm.length; k++) {
sFormNames += objForm[k].name + '</td>\n';
}
}
function getAllFormsName(objWindow) {
getFormsNamesForAnyDoc(objWindow.document);
if (objWindow.frames.length > 0) {
for (i = 0; i < objWindow.frames.length; i++) {
getAllFormsName(objWindow.frames[i]);
}
}
}
//Calling
getAllFormsName(window);
console.log(sFormNames);
答案 0 :(得分:1)
function DisplayFormValues() {
var str = '';
var elem = document.getElementById('frmMain').elements;
for (var i = 0; i < elem.length; i++) {
str += "<b>Type:</b>" + elem[i].type + "  ";
str += "<b>Name:</b>" + elem[i].name + " ";
str += "<b>Value:</b><i>" + elem[i].value + "</i> ";
str += "<BR>";
}
document.getElementById('lblValues').innerHTML = str;
}
&#13;
<form id="frmMain" name="frmMain">
<input type="hidden" name="ElemHidden" value="some hidden text" />
<input type="text" name="ElemText" value="some text" />
<br />
<textarea name="ElemTextArea">Some text area text</textarea>
<br />
<br />
<input type="button" value="Test" onclick="DisplayFormValues();" />
</form>
<hr />
<div id="lblValues"></div>
&#13;
这些和元素的代码由帖子Jan Pfeifer
中的How to access to iframe element?提供var iframes = document.getElementsByTagName('iframe'); //all iframes on page
for(var i=0; i<iframes.length; i++){
alert(iframes[i].parentNode.id); // LI.id
alert(iframes[i].contentWindow.myVar); //iframe's context
}