两个本地(localhost)html文件之间的传值

什么是iframe?

iframe 元素会创建包含另外一个文档的内联框架(即行内框架)。可以理解为把iframe解释成“浏览器中的浏览器

在IE中:

document.frames[i].document.getElementById('元素的ID');

或:

document.frames['iframe的name'].document.getElementById('元素的ID');

直接上代码:

总共有两个html文件 

这上1.html文件,代码如下:

<html>
<head>
<title>这是1.html</title>
<meta charset="UTF-8">
</head>
<body>
<p>这是1.html的内容这是1.html的内容这是1.html的内容这是1.html的内容</p>
<input type="button" onClick="show()" value="提取2.html的内容">
<hr style="color:green;height:1px" />
<div id="ss"></div>
<iframe src="2.html" name="myframe" id="haha" style="display:none"></iframe>
</body>
</html>
<script language="javascript">
function show(){
    var xx=window.frames["myframe"].document.getElementById("bd").innerHTML;
        // 以下通过id来获取也是可以的,同样的效果
    //  var xx=document.getElementById("haha").contentWindow.document.getElementById("bd").innerHTML;
      document.getElementById("ss").innerHTML=xx;
   
 }
</script>

2.html的代码如下:

<html>
<head>
<title>这是2.html</title>
</head>
<body id="bd">
这是2.html的内容这是2.html的内容这是2.html的内容这是2.html的内容这是2.html的内容这是2.html的内容<br>
这是2.html的内容这是2.html的内容这是2.html的内容这是2.html的内容这是2.html的内容这是2.html的内容<br>
这是2.html的内容这是2.html的内容这是2.html的内容这是2.html的内容这是2.html的内容这是2.html的内容<br>
<input type="button" value="这是2.html的内容"> <br>
</body>
</html>

safari中的运行结果如我们所愿:

点击按钮后的效果图上:

在goole chrome中就没那么幸运了,无论怎么改都报错检查效果图上:

 

原因:跨域,file:///类型的也算跨域,chrome对于file协议有安全限制,无法用js访问本地资源,对于http则是好的,所以上面页面要是在iis/apache网站中打开应该是没问题的 。。chrome要发布网站同源的才能互相操作,本地测试操作不了iframe,安全问题,chrome本地也用不了ajax请求本地文件,又有说法是chrome的内核不支持iframe 这个属性。

原文地址:https://www.cnblogs.com/qq1871707128/p/6033546.html