Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Internet Explorer扩展(BHO)中的沙盒Javascript执行_Javascript_Jquery_Internet Explorer_Sandbox_Bho - Fatal编程技术网

Internet Explorer扩展(BHO)中的沙盒Javascript执行

Internet Explorer扩展(BHO)中的沙盒Javascript执行,javascript,jquery,internet-explorer,sandbox,bho,Javascript,Jquery,Internet Explorer,Sandbox,Bho,Firefox有沙盒和evalInSandbox()。Chrome在其内容脚本中有沙盒执行(他们称之为隔离执行)。我正在IE浏览器扩展中寻找同样的东西 我可以加载一个javascript文件,然后调用evalScript(),但代码在与页面上存在的javascript相同的环境中执行。我需要一种在沙盒/隔离环境中运行我的库(包括jQuery并基于jQuery)的方法,但仍然允许它像在页面上运行一样修改DOM Jint看起来很有希望,但目前无法评估jQuery。(他们可以解析它。) 我如何才能做到

Firefox有沙盒和evalInSandbox()。Chrome在其内容脚本中有沙盒执行(他们称之为隔离执行)。我正在IE浏览器扩展中寻找同样的东西

我可以加载一个javascript文件,然后调用evalScript(),但代码在与页面上存在的javascript相同的环境中执行。我需要一种在沙盒/隔离环境中运行我的库(包括jQuery并基于jQuery)的方法,但仍然允许它像在页面上运行一样修改DOM

Jint看起来很有希望,但目前无法评估jQuery。(他们可以解析它。)


我如何才能做到这一点?

您可能会发现值得在Live Labs上查看Microsoft Web沙盒:


虽然它比较成熟,并且与mashup等相关,但它可能会为您指明正确的方向

你能详细说明一下你的目标吗

我认为你还没有明确地定义你想要实现的目标。如果您的代码能够修改页面的DOM,那么它将在页面上下文中有效地执行。它可以创建新的脚本块来执行任何不安全或不可靠的操作,如果它在相同的执行环境中运行,它可以完成这些操作


IE没有提供满足您要求的功能,我也不相信Firefox和Chrome功能的工作方式与您期望的一样。

看起来您正处于困境

  • 一些微软人说IE不提供这种功能
  • 一些人说他们已经能够做到这一点,紧紧抓住它,把它作为他们的秘密调味品加以保护
  • “专业”即扩展商店,当被联系到建设你正在谈论的东西时,拒绝工作
我真的希望我有更好的消息,但看起来可能需要一个小小的奇迹来完成你想要的。。。或者可能是很多钱


你最好的选择可能是找到少数几个声称自己有能力做到的人中的一个,并花很多钱让他们分享这个秘密,或者重新考虑为什么你真的想要你想要的,看看你是否能以另一种方式实现它。

你要找的是ActiveScript引擎()

我现在找不到任何有用的链接,MSDN只包含接口定义() 尝试谷歌“主动脚本”(而不是“动作脚本”!)

您需要在扩展中实现接口IActiveScriptHost,创建«JScript»的对象,调用SetSite并传递主机对象,然后您可以将js代码加载到此引擎并运行它

由于缺乏相关文档,这项技术是一项相当困难的技术。
如果您仍然对此感兴趣,我可以向您发送一些C++/ATL中的示例。

Microsoft Web沙盒保护页面不受加载到其中的脚本的影响。我需要保护从页面加载的脚本。这是一个很好的项目,但对我没有帮助。我的目标包括在页面上运行javascript,而页面的javascript不能访问javascript的方法和变量。我还想要一个新的javascript副本。如果页面已经在javascript中重新定义了一个方法,我不想受制于它们的重新定义。我并不担心我的脚本能够在DOM中植入脚本标记以跳出沙箱。我所描述的在Firefox和Chrome中都有。我将发布相关文档的链接。Chrome的隔离世界:“内容脚本在一个称为隔离世界的特殊环境中执行。它们可以访问所注入页面的DOM,但不能访问页面创建的任何JavaScript变量或函数。”Firefox的evalInSandbox:GreaseMonkey使用此方法允许在页面上下文之外执行javascript。将DOM作为变量传入允许脚本修改DOM,而不允许页面的javascript访问它自己的方法和变量。这确实允许沙盒代码植入脚本标记并在主页中加载内容,但我并不担心这一点;请参阅安全部分中的代码示例。虽然我不是专家,但我的理解是evalInSandbox主要用于允许原本在完全信任Chrome区域中执行的JS在活动文档的有限信任区域中执行。我认为每个人都害怕告诉你他们不知道你问题的答案。它们不是答案。我也没有,但我只是说,如果你能在这里,或者在GitHub中,放一个示例代码,那将非常有用。特别是像你说的,文档很少。