Javascript 在受限范围内使用eval
好的,让我解释一下我需要什么:Javascript 在受限范围内使用eval,javascript,jquery,eval,Javascript,Jquery,Eval,好的,让我解释一下我需要什么: 我希望用户能够evalJS/jQuery语句 必须限制对元素的访问-意思是:假设objectX不可用,但是objectY应该可用 我该怎么做呢?编写自己的Javascript引擎和DOM层?难道你不能取消定义你不想公开的对象/函数吗(将这样的脚本预先添加到代码中,然后在执行后进行评估和恢复)?这不是很安全,但是如果你足够信任你的用户来执行他们输入的代码,你可以试着使用这样的东西:(function(){var window={};(function(){/*u
- 我希望用户能够
JS/jQuery语句eval
- 必须限制对元素的访问-意思是:假设object
不可用,但是objectX
应该可用Y
我该怎么做呢?编写自己的Javascript引擎和DOM层?难道你不能取消定义你不想公开的对象/函数吗(将这样的脚本预先添加到代码中,然后在执行后进行评估和恢复)?这不是很安全,但是如果你足够信任你的用户来执行他们输入的代码,你可以试着使用这样的东西:
(function(){var window={};(function(){/*user code here*/})(;})()
。您还必须将此
绑定到全局对象以外的其他对象,否则经过计算的代码可以使用它来获取引用。而关闭全局对象将不允许对元素Y
进行过滤访问,但不允许对元素X
@IsmaelMiguel进行过滤访问。同样的情况也适用于:(function(){var window={};with(window){test=“test”;}});控制台日志(测试)代码>。顺便说一句,添加额外的作用域并没有什么不同