Mar*_*sen 13 javascript cross-browser
为什么以下html文件在IE中显示为默认标题?其他浏览器将标题显示为mytitle.
<script>
window.mylib = window.mylib || {};
mylib.title = 'mytitle';
</script>
<script>
var mylib = mylib || {};
document.title = mylib.title || 'default';
</script>
Run Code Online (Sandbox Code Playgroud)
IE是否为每个脚本标记创建了单独的范围?
这只是一个错误或为什么行为不同?
(在IE8和最新的chrome/ff/opera中测试)
HTML<script>标签 Javascript 在window. 因此,分离的脚本标签在同一范围内执行。
特别是对于 IE7,请尽量不要在第二次重新定义变量:
代替
var mylib = mylib || {};
Run Code Online (Sandbox Code Playgroud)
使用
mylib = window.mylib || {};
Run Code Online (Sandbox Code Playgroud)
mylibIE7可能会覆盖when is遇到的定义var mylib。