由于某种原因,在 IE 中(准确地说是 Win 7 中的 IE8),当我单击 mailto 链接时,最终当前页面被地址栏中带有 mailto 的空白页面替换。
具体来说,当我单击 mailto 链接时会发生以下情况:
- 新的 about:blank 选项卡打开,并弹出安全提示,询问我是否要打开 Outlook。
此时,看起来原始选项卡仍然显示原始页面。
- 当我单击“允许”或“不允许”时,新选项卡将关闭,原始页面将重新加载,并在地址栏中显示 mailto。
如果我注释掉 dojo.xd.js 引用,它就会按预期工作。
Firefox 和 Chrome 只是弹出 Outlook 新消息窗口。还经过测试并可在 Windows XP 和 IE7 上运行。
复制该问题的代码是:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<TITLE>mailto test</TITLE>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/dojo/1.3.2/dojo/dojo.xd.js" djConfig="parseOnLoad: true"></script>
</HEAD>
<BODY>
<a href="mailto:[email protected]">mailto</a>
</BODY>
</HTML>
您好,我也一直在这里调查这个问题,它归结为 ie8 中的扩展安全设置。
问题在于所谓的保护模式。有趣的是,如果您有一个带有禁用保护模式的 mailto 链接的页面,并且您有一个 mailto 链接并为 Internet 启用了保护模式,那么您就会遇到此问题。
IE 尝试启动保护模式,并在启动邮件客户端之前通过 about:blank 执行页面刷新。
之后,它会尝试重定向到您的原始页面,但失败的情况比恢复页面的情况要多。
在默认设置中,您还会收到安全警告,您可以通过复选框将其禁用。
这一切都解决了使 mailto 链接进入保护模式或完全禁用保护模式或将 mailto 页面推入保护模式的问题。
更糟糕的问题是,您不能对整个 mailto 链接使用通配符,如果您添加通用域通配符 ala *.example.com,则 mailto 链接 mailto:[电子邮件受保护]仍然没有被识别为受信任域的一部分。
所以我不确定哪种策略是解决此问题的最佳策略,最好的策略可能是 Microsoft 在互联网设置中修复其域通配符系统,该系统仍然与 IE 中的相同。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)