火狐有沙盒和evalInSandbox()。Chrome在他们的内容脚本中有沙箱执行(他们称之为隔离执行)。我在IE浏览器扩展中也在寻找同样的东西。
我可以加载一个javascript文件,然后调用evalScript(),但是代码在与页面上的javascript相同的环境中执行。我需要一种在沙箱/隔离环境中运行我的库(包括jQuery并基于它)的方法,但仍然允许它修改DOM,就像它在页面上运行一样。
Jint看起来很有希望,但目前还不能评估jQuery。(他们可以解析它。)
我该怎么做呢?
发布于 2010-12-10 07:27:16
看起来你在这件事上有麻烦了。
一些微软人说IE没有提供这个functionality
我真的希望我有更好的消息,但看起来可能需要一个小奇迹才能实现你正在寻找的……或者一大笔钱。:)
你最好的选择可能是找到少数几个声称他们能够做到这一点的人,并付钱给他们,让他们分享秘密,或者重新考虑为什么你真的想要你想要的东西,看看你是否能用其他方式实现它。
发布于 2010-01-09 02:27:39
您可能会发现,在Live Labs中查看Microsoft Web Sandbox是值得的:http://websandbox.livelabs.com/
尽管它更加成熟,并且与mashup等相关,但它可能会为您指明正确的方向。
发布于 2011-02-16 22:42:42
你要找的是ActiveScript engine (http://en.wikipedia.org/wiki/Active_Scripting)
我现在找不到任何有用的链接,MSDN只包含接口定义(http://msdn.microsoft.com/en-us/library/ccd0zt2w(v=vs.85).aspx尝试搜索“活动脚本”,而不是“动作脚本”!)
你需要在你的扩展中实现接口IActiveScriptHost,创建一个JScript对象,调用SetSite并传递你的宿主对象,然后你就可以将你的js代码加载到这个引擎中并运行它。
由于缺乏相关文档,这项技术相当困难。如果你仍然对此感兴趣,我可以给你一些C++/ATL的例子。
https://stackoverflow.com/questions/2029736
复制相似问题