【问题标题】:Make "mark of the web" work in Microsoft Edge?在 Microsoft Edge 中制作“网络标记”?
【发布时间】:2018-03-15 18:53:54
【问题描述】:

我想将 HTML 文件保存到磁盘,并使其可以在大多数浏览器中打开而不会出现警告(无网络服务器场景)。

对于 IE,我通常使用“web 标记”,大多数浏览器(尤其是 Firefox 和 Chrome)都安全地忽略了它。 IE 在找到这个 web 标记后也表现正常并且没有显示任何警告。您可以在MSDN 中查看更多关于网络标记的信息。

现在的问题。 Microsoft Edge 在看到这个“网络标记”后震惊并停止执行包含的 javascripts 文件。我勒个去 ?!如果我删除“网络标记”并在 Edge 中打开文件,它会正常打开(没有警告,并执行 javascripts)。

我可以让 IE 和 Edge 为同一个文件工作吗?

index.html

<!DOCTYPE html>
<!-- saved from url=(0014)about:internet -->
<html>
<head>
    <script src="foo.js" ></script>
</head>
<body>
</body>
</html>

foo.js

 alert('i am executed');

上面的内容根本不会在 Edge 中执行(如果从文件系统打开)!如何实现?

【问题讨论】:

  • 这是一个 IE hack。 Edge 不是 IE
  • 是的,我怀疑这实际上是一种黑客行为。但无论如何,任何想法如何实现它?我的意思是,FF 和 Chrome 只是忽略了这个标签。为什么边缘不能做同样的事情?
  • 嗨,删除警报语句...(从头块调用它) Edge 和 IE(现在)谨慎处理警报语句以防止虚假支持诈骗...。我没有麻烦在边缘运行脚本化 MOW 页面,尽管所有脚本都是内联的,并且图像是数据 uri,以制作没有依赖关系的单个页面。
  • 谢谢你抢。内联脚本在 Edge 中工作,但它们非常大,我想将它们分开,而不是在每个文件中重复。 'alert' 似乎不是问题,它只是一个示例 - 任何 javascript 代码都不是从(外部)javascript 文件执行的。
  • 嗨 Nik,在空白页中打开边缘 (about:blank) 然后打开开发工具 (f12) 并选择调试选项卡,在调试选项卡上,从下拉(看起来像一个停止标志),然后(!重要)不关闭边缘开发工具,返回到边缘的空白页面和页面文件地址中的类型......它现在应该打破异常。跨度>

标签: javascript html internet-explorer microsoft-edge


【解决方案1】:

您还需要foo.js 上的网络标记。有several ways 将网络标记应用于非 HTML 文件——您可以将其完整性级别设置为“低”:

icacls foo.js /setintegritylevel low

或者您可以添加带有区域标识符的备用数据流:

powershell -c add-content foo.js -stream Zone.Identifier -value "[ZoneTransfer]","ZoneId=3"

或许最简单的方法是将index.html 重命名为index.htm,然后将foo.js 放入名为index_files 的目录中。始终允许加载该目录中的任何内容,即使它没有自己的 web 标记。

【讨论】:

  • 哇。太棒了:)谢谢。
猜你喜欢
  • 1970-01-01
  • 2018-03-11
  • 2015-11-06
  • 2015-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-15
  • 2015-09-03
相关资源
最近更新 更多