4

出于某种原因,在 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>
4

7 回答 7

10

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

于 2011-03-29T11:58:58.837 回答
0

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

于 2011-04-20T12:26:34.433 回答
0

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

于 2013-07-30T17:01:35.363 回答
-1

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

于 2010-11-22T21:18:23.797 回答
-1

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

于 2009-11-14T04:22:47.100 回答
-1

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">
于 2009-11-04T16:45:33.920 回答
-2
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
于 2009-11-25T12:25:54.977 回答