Js如何监视Iframe内部地址改变

最近在用jsunit来测试js代码。

测试对象中有一个针对iframe的操作。就是通过iframe.contentwindow.location.href属性更新iframe的url。但是每次测试时候,iframe.contentwindow.location.href都是修改以前内容。

开始以为是同源域的情况,无法访问。但是明明是可以访问的啊。

后来又怀疑是cache缓存问题。强行刷新iframe也没用。

自己做了一个例子。

1.html

<html>
<head>
<script>
var iframe = document.getElementById("frameArea");
alert(iframe.src);
iframe.contentwindow.location.href="b.html";
alert(iframe.src);
alert(iframe.contentwindow.location.href);
</script>
</head>
<body>
<iframe id="frameArea" name="frameArea" src="a.html"/>
</body>
<html>

a.html

<html>
<head>
</head>
<body>
AAAAAAAAAAAAAAAAAAAAAA
</body>
<html>

b.html

<html>
<head>
</head>
<body>
BBBBBBBBBBBBBBBBBBBBBBBB
</body>
<html>

发现只有在页面刷新后,才能显示b.html页面内容。

最后在http://q.cnblogs.com/q/59280/找到结果。

最后,我在测试代码中,将assert判断放到iframe的load事件中就解决了。


你可能感兴趣的:(Js如何监视Iframe内部地址改变)