最近在用jsunit来测试js代码。html
测试对象中有一个针对iframe的操做。就是经过iframe.contentwindow.location.href属性更新iframe的url。可是每次测试时候,iframe.contentwindow.location.href都是修改之前内容。缓存
开始觉得是同源域的状况,没法访问。可是明明是能够访问的啊。测试
后来又怀疑是cache缓存问题。强行刷新iframe也没用。url
本身作了一个例子。code
1.html
htm
<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.htmlblog
<html> <head> </head> <body> BBBBBBBBBBBBBBBBBBBBBBBB </body> <html>
发现只有在页面刷新后,才能显示b.html页面内容。事件
最后在http://q.cnblogs.com/q/59280/找到结果。
ip
最后,我在测试代码中,将assert判断放到iframe的load事件中就解决了。