我想知道是否有可能在浏览器中运行沙箱 JavaScript 来阻止访问 HTML 页面中运行的 JavaScript 代码通常可用的特性。
例如,假设我想为最终用户提供一个 JavaScript API,让他们定义在“有趣的事件”发生时运行的事件处理程序,但是我不希望这些用户访问 window
对象的属性和函数。我能做到吗?
在最简单的情况下,假设我想防止用户调用 alert
。我能想到的几种方法是:
window.alert
。我不认为这是一种有效的方法,因为页面中运行的其他代码(例如,未由用户在其事件处理程序中编写的内容)可能希望使用 alert
。也许一个解决方案,服务器处理用户定义的函数,然后生成一个回调,在客户端上执行?即使这种方法有效,是否有更好的方法来解决这个问题?