看例子,两个文件如下:
a.html:<iframe name="HtmlEdit" ID="HtmlEdit" MARGINHEIGHT="1" MARGINWIDTH="1" width="100%" height="321" src="b.htm" ></iframe>
<input type="button" id="d3" name="d3" value="Iframe值" onClick="submit1A()">
<input type="button" id="tt" name="tt" value="文本值" onClick="submit1B()">
<script language="javascript">
function submit1A(){
if (document.all){//IE
doc = document.frames["HtmlEdit"].document.body.innerHTML;
}else{//Firefox
doc = document.getElementById("HtmlEdit").contentDocument.documentElement.innerHTML;
}
alert(doc);
}
function submit1B(){
if (document.all){//IE
doc = document.frames["HtmlEdit"].document.getElementById("tt").value;
}else{//Firefox
doc = document.getElementById("HtmlEdit").contentDocument.getElementById("tt").value;
}
alert(doc);
}
</script>b.html:
<table border="0" cellspacing="0" cellpadding="0" id="idTable">
<tr><td>
<input type="text" id="tt" name="tt" value="1" />
<input type="text" value="2"/></td></tr>
</table>
在FF下改变b.html的第一个text的值为:13。
点击按钮“文本值”可以取到13。
再点按钮“Iframe值”发现第一个text的值还是的,不是现在的13。为什么。
a.html:<iframe name="HtmlEdit" ID="HtmlEdit" MARGINHEIGHT="1" MARGINWIDTH="1" width="100%" height="321" src="b.htm" ></iframe>
<input type="button" id="d3" name="d3" value="Iframe值" onClick="submit1A()">
<input type="button" id="tt" name="tt" value="文本值" onClick="submit1B()">
<script language="javascript">
function submit1A(){
if (document.all){//IE
doc = document.frames["HtmlEdit"].document.body.innerHTML;
}else{//Firefox
doc = document.getElementById("HtmlEdit").contentDocument.documentElement.innerHTML;
}
alert(doc);
}
function submit1B(){
if (document.all){//IE
doc = document.frames["HtmlEdit"].document.getElementById("tt").value;
}else{//Firefox
doc = document.getElementById("HtmlEdit").contentDocument.getElementById("tt").value;
}
alert(doc);
}
</script>b.html:
<table border="0" cellspacing="0" cellpadding="0" id="idTable">
<tr><td>
<input type="text" id="tt" name="tt" value="1" />
<input type="text" value="2"/></td></tr>
</table>
在FF下改变b.html的第一个text的值为:13。
点击按钮“文本值”可以取到13。
再点按钮“Iframe值”发现第一个text的值还是的,不是现在的13。为什么。
你并没有改变dom元素。只是改变了在文本域中写入了值<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>a.html</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<script type="text/javascript">
window.onload = function () {
alert(document.body.innerHTML);//首次获取body的code,value=abc
document.getElementById("test").value = 10;
alert(document.body.innerHTML);//赋值后获取body的code,value=abc 实际是10
document.getElementById("test").removeAttribute("value");
document.getElementById("test").setAttribute("value", "zxy");//value=10,实际是zxy
alert(document.getElementById("test").value);
document.getElementById("test").value = "dvd";
alert(document.body.innerHTML);//获取改变dom后的body的code,事件是dvd,输出html的value=zxy
//document.getElementById("test").value可以完成页面动态赋值,但是没有改变dom中的元素
//在改变dom的情况下,可以动态改变html但没有改变页面上的值
document.body.innerHTML= '<input type="text" value="zxy" id="test"/>';
//innerHTML可以动态改变对dom和完成页面赋值效果
var t = document.createElement("input");
t.type = "text";
t.setAttribute("value", "success");
document.body.appendChild(t);
alert(document.body.innerHTML);//也可以动态的改变页面上显示的值和dom元素
};
</script> </head>
<body>
<input type="text" value="abc" id="test"/>
</body>
</html>
差点就测试到这上步了。要是iframe里太多的input控件和内容,
还没法赋值给父窗口中的变量或textarea控件。
虽然input的value改变了,但是获取的innerHTML代码还是原始的html代码
document.getElementById("HtmlEdit").contentWindow.document.getElementById("..").innerHTML=...;
iframe里太多控件。似乎没法这样搞:
document.getElementById("HtmlEdit").contentWindow.document.getElementById("..").innerHTML=...;
好像效果不佳,应该没改变html的value吧
onblur="this.setAttribute('value',this.value);alert(document.body.innerHTML);"
改变html的value好难哦。