昨天遇到个怪问题,Internet Explorer cannot open the Internet site,Operation aborted。
起因是我写了个服务器断控件,该控件需要在前端生成一个控制该控件的对象,
当时我采用直接往客户端注册javascript代码的方式:
<script>
var jsxxx;
var c;
jsxxx.xxx = '123';
appendCtrl(jsxxx)
</script>
在这里我使用了一个包装过的方法,就是把这个控件append到document.body上去
这时就出现了这个问题,当时我百思不得其解

最后发现只要我把这段js代码放到</html>的后面,就能正常运行
所以我推测错误是这样引起的
控件在生成的过程中,因为js代码的原因,就在body还没有生成完成的时候(还没有生成</body>),
就运行了该段js代码,倒置document无法找到完整的body,所以报错

解决方式:
往前端注册一个函数
<script>
var jsxxx;
var c;

var xxx = function () {
    jsxxx.xxx = '123';
    appendCtrl(jsxxx)
}

window.attachEvent('onload', xxx);
</script>
然后将这个函数附加到window.onload事件中,问题解决

posted on 2008-05-14 11:46  wilbur  阅读(4137)  评论(2编辑  收藏  举报