使用后退按钮后,Internet Explorer显示文本节点的奇怪节点值

时间:2013-11-29 16:08:24

标签: javascript internet-explorer internet-explorer-8 internet-explorer-7 jsonp

这是Internet Explorer 7和8中的一个问题,只有在通过JSONP触发访问节点值的代码时才会出现这种情况:

的test.html

<html>
<body>
<span>testing</span>
<a href="http://www.google.com">Google</a>

<script type="text/javascript">

window.attachEvent('onload', function() {
    var script = document.createElement('script');
    script.setAttribute('src', 'test.js');
    script.setAttribute('type','text/javascript');

    var head = document.getElementsByTagName('head');
    head[0].appendChild(script);
});

</script>
</body>
</html>

test.js

alert(document.body.childNodes[0].childNodes[0].nodeValue);

首次加载页面时,警报会按预期显示“正在测试”。但是,在按下链接然后使用浏览器后退按钮后,警报突然显示“ testi”。

为什么这是合适的解决办法?

1 个答案:

答案 0 :(得分:0)

test.html部分没问题。

<html>
<body>
<span>testing</span>
<a href="http://www.google.com">Google</a>

<script type="text/javascript">

window.attachEvent('onload', function() {
    var script = document.createElement('script');
    script.setAttribute('src', 'test.js');
    script.setAttribute('type','text/javascript');

    var head = document.getElementsByTagName('head');
    head[0].appendChild(script);
});

</script>
</body>
</html>

test.js应该是

alert(document.body.children[0].childNodes[0].nodeValue);