我担心的是,我的网站会动态从几个不同的广告供应商处获取广告。所以说第三方的javascript在一个单独的域上有一个广告,那可能会打破我的网站/域名上的javascript吗?我相信javascript是由域封装的,但只是想确定。
http://mysite.com
<script type="text\javascript" src="foo.com">
cause some error...
</script>
<script type="text\javascript" src="http://www.mysite.com/js/fooscript.js">
document.write("write something")
</script>
<script type="text\javascript" src="http://www.mysite.com/js/fooscript.js">
cause some other error...
</script>
<script type="text\javascript" src="http://www.mysite.com/js/fooscript.js">
document.write("write something else")
</script>
答案 0 :(得分:2)
如果脚本涉及任何类型的全局变量或函数,则始终存在命名冲突的风险。一个编写良好的库将通过避免全局空间中的大量变量来尽可能地降低这种风险。
答案 1 :(得分:0)
我喜欢你的问题。这让我想起了一个演讲者,演讲者希望我们为所有JS使用命名空间。如果一个命名空间有问题,那么除非他们使用相同的资源,否则其他namspace受影响最小。这就是为什么不应该修改对象的默认行为并扩展/创建自己的方法对象的原因。因此,在您的情况下,如果JS正在修改脚本正在使用的任何全局对象,那么该脚本中的故障(恕我直言)也会影响您的脚本。
答案 2 :(得分:0)
即使您正在加载存储在不同域中的不同脚本,代码也将始终在浏览器的同一页面上运行,除非您使用的是iframe,否则没有其他环境。
任何一个脚本引发的错误都将在您当前的JavaScript环境中抛出,因此其他脚本可能会停止工作或无法正常工作(这也取决于所使用的浏览器)。