在工作中,我必须处理供应商期望我们放入我们网站的很多(有时很糟糕的)JavaScript。它们中的一些向全局范围添加了任意的,未命名空间的名称。我一直在玩弄有关沙盒这些程序的不同想法,因此他们无法直接访问全球范围,但我一直无法想到任何可能真正起作用的东西。 (我想到了删除代码,但我确信这不是一个好主意。)我可以沙盒第三方JavaScript来保护全局名称空间吗?
有什么解决方案可以保持全局范围的清洁,同时仍然使用任意的第三方JavaScript?
编辑:@ kirilloid的评论告诉我我不清楚这个代码是如何交付的。我通常不会将代码放入我们的网站。大多数情况下,我只是给了一个URL并要求创建一个指向它的script
标记。
插入代码放到你的函数调用中,只显示函数,你的需要。 http://www.adequatelygood.com/2010/3/JavaScript-Module-Pattern-In-Depth – kirilloid 2012-03-09 14:51:20
@kirilloid对此感到抱歉。如果我有代码使用模块模式,我可以使用模块模式。我会用上面的* eval *思路做到这一点,但大多数情况下我只是指向指向其他地方托管的第三方脚本的URL。我已更新我的问题以反映这一点。 – kojiro 2012-03-09 14:55:07