MailTo在新窗口IE 8中使用浏览器选项

Pan*_*kaj 0 javascript asp.net jquery internet-explorer-8

下面是HTML

<a id="LnkEmail" onclick="doMailto('d@s.com');" href="javascript:void(0);">
<span id="LblEmail">ABC</span></a>
Run Code Online (Sandbox Code Playgroud)

使用Javascript

<script type="text/javascript">
    function doMailto(EmailAddress) {
        document.location.href = window.open('mailto:' + EmailAddress, 'new window');
    }

</script>
Run Code Online (Sandbox Code Playgroud)

在FireFox中,它会在单击下面的跨度时打开图像.

在此输入图像描述 查询 - 在IE 8中 - 单击它时没有任何反应.任何的想法 ?

Kyl*_*cey 9

弹出选择功能是Firefox的原生功能,并不是Internet Explorer中的可用功能,因为Internet Explorer直接从Windows(操作系统)处理关联.因此,无论哪个程序用于处理mailto:计算机上的链接,都将打开(最典型的是Outlook Express).没有一致的方法可以避免这种情况,因为您无法控制用户决定打开该协议的内容.我的建议是写一个POST asp.net联系表.我自己不是ASP.NET开发人员,但我找到了这个教程:http://www.jimcobooks.com/tutorials/emailform1/default.aspx

测试这个理论:尝试找一台没有任何邮件客户端的计算机(没有outlook,outlook express等),然后Internet Explorer会提示程序打开协议.

另一项测试(我测试的方式)我设置谷歌Chrome以处理所有mailto:请求并将它们转发到我的Gmail Webmail界面.当我测试你的链接,并在jsfiddle(http://jsfiddle.net/sHYW8/2/)中修改你的windowname时,Windows问我IE是否可以打开谷歌Chrome来处理协议.

简短的回答:除非你强迫所有用户为IE安装第三方插件,否则你的要求在技术上是不可能的.这是因为Internet Explorer是Windows操作系统的一部分,而Mozilla Firefox是第三方浏览器,它被迫以自己的方式处理协议.

UPDATE

我发现了一个jQuery插件,它使用的是Gmail,Yahoo!和MSN.它不是弹出窗口,而是更多的翻转.我认为这将是你最接近的赌注.

http://kevin-cantwell.github.com/webmailto/

对你而言好处是实现似乎很容易.我会看一下底部的例子,看起来很漂亮.

  • 我希望你明白使用webmailto插件允许你编写自己的窗口,类似于Firefox"启动应用程序"窗口,但它仍然不会完全相同.您将无法"选择一个应用程序......",如果您想"记住我的选择...",您必须使用LocalStorage,cookies或保存用户首选项服务器端.我希望你接受凯尔的回答并停止简单地说,"我需要xxx","我需要xxx","我需要xxx" (3认同)