【问题标题】:mailto causing a blank page in IE8 when used with Dojo与 Dojo 一起使用时 mailto 在 IE8 中导致空白页
【发布时间】:2010-12-13 01:41:36
【问题描述】:

由于某种原因,在 IE(确切地说是 Win 7 中的 IE8)中,当我单击 mailto 链接时,我最终会发现当前页面被地址栏中带有 mailto 的空白页面替换。

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

  1. 新的 about:blank 选项卡打开,并弹出一个安全提示,询问我是否要打开 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>

【问题讨论】:

  • 请让我知道它在其他浏览器/操作系统组合中是否有效。
  • 我也有这个问题。不是 Dojo,而是出于某种原因,在我们的网站上,任何与 body onunload 挂钩的 javascript 都会导致这种情况发生。如果我们删除 onunload 它工作正常。 Firefox 可以正常工作,但 IE 8 不行。

标签: internet-explorer dojo mailto


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    您会碰巧在您的机器上进行本地调试,还是在 Internet 上的站点上出现此问题?如果您在本地调试此站点,则会出现此问题,因为该站点位于 IE 的“本地 Intranet 区域”中,而 mailto 链接位于“Internet 区域”中。 IE 不喜欢这样。查看有关此问题的链接。 MS Article. 这个问题会在网站发布到 Internet 后神奇地消失。

    【讨论】:

      【解决方案3】:

      我们刚刚遇到了同样的问题,打开保护模式可以解决问题。 此外,将 mailto 链接的内容缩短到少于 500 个字符可以解决问题。

      【讨论】:

      • 欢迎来到 SO。我不确定这如何回答所提出的问题。我很确定 OP 希望他们网站的用户可以访问此 mailto,并且他们的 mailto 链接少于 20 个字符......远不及您建议的 500 个字符问题。根据 OP,错误似乎与 dojo.xd 文件有关。你对解决这个问题有什么建议吗?
      • @Enigmadan - 不要迂腐。他通过建议保护模式可以解决问题(就像他的案例一样),在解决问题方面做出了很好的尝试。
      【解决方案4】:

      您的文档类型不完整...将其更改为:

      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
      

      【讨论】:

      • 我只是留下了编辑器放在那里的文档类型...将其更改为您建议的内容,但它并没有解决问题。
      【解决方案5】:

      如果您创建一个带有 name="foo" 属性的隐藏 iframe,然后将 target="foo" 放在链接的 a 标记上,它应该可以避免该问题。

      【讨论】:

      • 不,无法让它工作。好像是在设置置顶的网址。
      【解决方案6】:

      无论出于何种原因,它现在似乎对我有用。

      【讨论】:

        【解决方案7】:
        <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
        

        【讨论】:

          猜你喜欢
          • 2012-03-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多