与Dojo一起使用时,mailto在IE8中导致空白页面

Eug*_*atz 4 mailto dojo internet-explorer

出于某种原因,在IE(确切地说是Win 7中的IE8)中,当我点击mailto链接时,我最终将当前页面替换为地址栏中带有mailto的空白页面.

具体来说,当我点击mailto链接时会发生这种情况:

  1. 新的:空白选项卡打开,弹出安全提示,询问我是否要打开Outlook.此时,看起来原始标签仍显示原始页面.
  2. 当我单击"允许"或"不允许"时,新选项卡将关闭,原始页面将重新加载地址栏中的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:example@example.com">mailto</a>
         </BODY>
        </HTML>
Run Code Online (Sandbox Code Playgroud)

小智 10

你好我在这里也一直在调查这个问题,它归结为ie8中的扩展安全设置.问题是所谓的保护模式.有趣的是,如果您的页面包含已禁用保护模式的mailto链接,并且您为Internet启用了mailto链接和保护模式,则会遇到此问题.IE尝试启动保护模式,并通过在启动邮件客户端之前对about:blank执行此操作来执行页面刷新.之后,它会尝试重定向到您的原始页面,并且通常会失败而不是还原页面.在默认设置中,您还会收到一个安全警告,您可以在其中禁用复选框.这一切都指出了将mailto链接进入保护模式或者要么全部禁用保护模式或将mailto页面推送到保护模式的问题.更糟糕的问题是,您不能通配符整个mailto链接,如果添加通用域通配符ala*.example.com,则mailto链接mailto:myaddy@example.com仍然不会被识别为可信域的一部分.所以我不确定哪种策略最好解决这个问题,最好的可能是微软在互联网设置中修复了他们的域通配符系统,这仍然与IE中的相同.