前两天发现了一个超级诡异的错误,我增加了一个swf在某个页面的时候,总是会Flash Player总是会弹出 J.parentNode is null的错误。
而且最头痛的是出现了JS程序员最怕出现的问题:只在IE6、IE7下面弹出错误,FF3、Chrome 2.X、Chrome 1.X、Safari下面均没有问题
问题发生的环境:
由于我在加入这个功能到页面的时候,为了更方面的deploy,使用了
<script type="text/javascript" id="ls" src="http://www.xxx.com/xxx.js"></script>的方式
即在任何想调用这个功能的页面直接embed 这个段js即可。
探索方式:
1、开始的时候怀疑JQuery有问题,后来吧JQuery去掉后,问题依旧。。。
2、遍查了一些Flex code,也没有发现任何问题。
3、去掉了出现错误的swfobject + Flex后,症状消失。
经过以上的步骤,基本上可以圈定:出现问题的是swfobject。
没有好的办法,去swfobject Project Group看了一下,结果发现了答案。。。
具体内容:
具体解决方法:
将swfobject放到<head></head>里面,而非<body></body>里面,问题即可解决。
PS:以上问题发生在有多个swfobject被import的时候。