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

时间:2009-11-04 15:26:49

标签: internet-explorer dojo mailto

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

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

  1. 新信息:空白标签页打开,弹出安全提示,询问我是否要打开Outlook。 此时,看起来原始标签仍显示原始页面。
  2. 当我点击“允许”或“不允许”时,新标签将关闭,原始页面将重新加载地址栏中的mailto。
  3. 如果我注释掉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>
    

7 个答案:

答案 0 :(得分:10)

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

答案 1 :(得分:0)

您是否碰巧在您的计算机上本地调试此问题,或者是在Internet上的网站上出现此问题?如果您在本地调试此站点,则会出现此问题,因为该站点位于IE中的“本地Intranet区域”中,并且mailto链接位于“Internet区域”中。 IE不喜欢这个。查看此问题的链接。 MS Article. 将网站发布到互联网后,这个问题将会神奇地消失。

答案 2 :(得分:0)

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

答案 3 :(得分:-1)

您的doctype不完整...将其更改为:

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

答案 4 :(得分:-1)

如果您使用name =“foo”属性创建隐藏的iframe,则在链接的标记上放置target =“foo”,以避免出现问题。

答案 5 :(得分:-1)

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

答案 6 :(得分:-2)

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />