jquery 改变iframe内容

有两个页面分别是a.html,b.html.
a里面包含一个iframe,iframe加载b,我通过jquery获取b的内容进行修改。
a主要代码如下,
<script>
$(function(){
$("iframe").contents().find("body").html("你好!");
});
</script>
</head>
<body>
<iframe src="b.html"></iframe>
</body>
b是一个空白页面,现在刷新a的瞬间b中会出现“你好”,但是瞬间又变成空白页面,这是什么原因?
我试了一下,把jquery代码放在body后面也是不行的,但是页面上放一个按钮,把jquery代码放在按钮里面完全没问题。

这是浏览器同源策略(本地调试时,涉及跨域)的问题。
例如,在Chrome控制台出现错误:

Uncaught DOMException: Failed to read the 'contentDocument' property from 'HTMLIFrameElement': Blocked a frame with origin "null" from accessing a cross-origin frame

解决办法:
上传到服务器,问题就不会出现了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-12-14
因为js在body前先加载了;
当body元素加载出来,js就执行了,而iframe却加载没js执行快,才出现“你好”,但是瞬间又变成空白页面。

可以把scrpit放到body后面加载。