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

标签 internet-explorer dojo mailto

出于某种原因,在 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:example@example.com">mailto</a>
             </BODY>
            </HTML>
    

    最佳答案

    您好,我也一直在这里调查这个问题,归结为 ie8 中的扩展安全设置。
    问题是所谓的保护模式。有趣的是,如果您的页面带有禁用了保护模式的 mailto 链接,并且您为 Internet 启用了 mailto 链接和保护模式,您就会遇到这个问题。
    IE 尝试启动保护模式,并通过在启动邮件客户端之前针对 about: blank 执行此操作来执行页面刷新。
    之后,它会尝试重定向到您的原始页面,但失败的次数比能够恢复页面的次数要多。
    在默认设置中,您还会收到一个安全警告,您可以在其间使用复选框禁用。
    将mailto 链接置于保护模式,或者完全禁用保护模式,或者将mailto 页面推送到保护模式,这一切都归结为问题。
    更严重的问题甚至是您无法通配整个 mailto 链接,如果您添加通用域通配符 ala *.example.com,mailto 链接 mailto:myaddy@example.com 仍然未被识别为受信任域的一部分。
    所以我不确定哪种策略最适合解决这个问题,最好的可能是微软在互联网设置中修复了他们的域通配符系统,这仍然与 IE 中的相同。

    关于internet-explorer - 与 Dojo 一起使用时,mailto 在 IE8 中导致空白页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1674527/

    相关文章:

    jquery - 在新选项卡/窗口中打开 href mailto 链接

    c# - 将页面呈现为图片

    javascript - Internet Explorer 11 中的 AJAX - 不缓存

    php - Javascript 无法在 Internet Explorer 上运行

    html - 如果我没有 HTML 5 文档类型,为什么会触发 HTML 5 验证?

    HTML - 截取屏幕截图并粘贴到电子邮件中

    android - Google Inbox 会截断 mailto : body parameter 中 `=` 之后的所有内容

    asp.net - 试图触发 onclick 事件 asp :ImageButton

    javascript - data-dojo-attach-point 值未在相关自定义小部件类中解析

    javascript - 如何在dojo中模拟无模式窗口对话框,以便我们可以打开多个窗口 Pane