Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在新窗口IE 8中使用浏览器选项发送邮件 下面是HTML Javascript 功能域(电子邮件地址){ document.location.href=window.open('mailto:'+EmailAddress,'newwindow'); } 在FireFox中,点击span按钮打开图像,如下图所示。_Javascript_Jquery_Asp.net_Internet Explorer 8 - Fatal编程技术网

在新窗口IE 8中使用浏览器选项发送邮件 下面是HTML Javascript 功能域(电子邮件地址){ document.location.href=window.open('mailto:'+EmailAddress,'newwindow'); } 在FireFox中,点击span按钮打开图像,如下图所示。

在新窗口IE 8中使用浏览器选项发送邮件 下面是HTML Javascript 功能域(电子邮件地址){ document.location.href=window.open('mailto:'+EmailAddress,'newwindow'); } 在FireFox中,点击span按钮打开图像,如下图所示。,javascript,jquery,asp.net,internet-explorer-8,Javascript,Jquery,Asp.net,Internet Explorer 8,查询-在IE 8中-单击它时不会发生任何事情。有什么想法吗?对于IE 7和8,只有在窗口名称中不能使用任何空格。尝试将代码更改为: window.open('mailto:' + EmailAddress, 'Mail'); 弹出选择功能是Firefox的固有功能,在Internet Explorer中不可用,因为Internet Explorer直接从您的操作系统Windows处理关联。因此,无论哪个程序要处理计算机上的mailto:链接,都将打开它(最典型的是Outlook Express


查询-在IE 8中-单击它时不会发生任何事情。有什么想法吗?

对于IE 7和8,只有在窗口名称中不能使用任何空格。尝试将代码更改为:

window.open('mailto:' + EmailAddress, 'Mail');

弹出选择功能是Firefox的固有功能,在Internet Explorer中不可用,因为Internet Explorer直接从您的操作系统Windows处理关联。因此,无论哪个程序要处理计算机上的
mailto:
链接,都将打开它(最典型的是Outlook Express)。没有一致的方法可以避免这种情况,因为您无法控制用户决定用什么打开该协议。我的建议是写一份asp.net联系表。我本人不是ASP.NET开发人员,但我为您找到了本教程:

为了验证这一理论:尝试寻找一台没有任何邮件客户端(没有outlook、outlook express等)的计算机,然后Internet Explorer将提示一个程序来打开协议

另一个测试(我的测试方式)我设置了谷歌浏览器来处理所有的mailto:请求,并将它们转发到我的Gmail网络邮件界面。当我测试你的链接,并在jsfiddle()中修改你的windowname时,Windows问我IE是否可以打开googlechrome来处理这个协议

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

更新

我发现了一个jQuery插件,它使用Gmail的API,Yahoo!和MSN。这不是一个弹出窗口,而是一个滚动。我想这将是你最接近的赌注


对您来说,一件好事是实现似乎很容易。我会看看下面的示例,它看起来非常流畅。

下面是您提到的工作代码

window.open('mailto:'+EmailAddress,'newwindow')

它的工作,但像FF IE不提供您选择邮件引擎的选项。 如果要运行代码,必须使用set default program设置邮件的默认程序。 并且您只能将Outlook设置为默认程序。In-OutLook可以绑定任何东西,比如yahoo或gamil,这样就可以使用mailto为IE编写代码

我认为你必须做编码,因为IE不提供任何附加像FF

首先,您必须通过以下代码检查默认客户端是否存在

RegistryKey hkey=Registry.ClassesRoot.OpenSubKey( “mailto\shell\open\command”,false)

如果此密钥为空,则不存在默认客户端。因此,您必须在弹出窗口中显示邮件提供列表。您必须将所选提供商设置为默认客户端邮件

使用上面的链接,您可以找到在计算机上注册的邮件列表以显示列表

此链接显示如何在注册表中设置值

然后执行mailto代码。

尝试以下操作:

function doMailto(EmailAddress) {
    document.location.href = 'mailto:' + EmailAddress;
}
我认为你的IE阻止了javascript创建的弹出窗口

我只是想说清楚

Adriano建议只使用普通html标记也可以。 像这样:

<a id="LnkEmail" href="mailto:d@s.com">

正如Vishal和Kyle Macey试图解释的那样: Firefox中弹出的“启动应用程序”窗口。。。这不是一个可以从网页创建的窗口。这是Firefox自己的窗口,单击mailto:链接时会显示该窗口。IE不提供相同类型的窗口。它通常只打开默认的邮件客户端(在您的情况下可能是Outlook)

最后。。。 Javascript与JQuery不同。
JQuery是用Javascript编写的,但JQuery不是Javascript。

如果你真的想要这样一个列表,有一种方法可以使用纯Javascript,尽管它可能与你目前在firefox中的体验不同。您可以使用javascript创建一个模式对话框,其中显示许多流行的webmail客户端,并提供一个选项“默认系统客户端”而不是“Microsoft Office Outlook”。“选择应用程序”也不可能包括在内。接下来,如果用户选择本机客户端,您只需像当前一样触发一个mailto链接,如果用户选择gmail,您将触发一个窗口打开一个链接


当然,从你的mailto链接你自己的变量。你必须自己找出不同网络邮件服务的相关链接,但据我所知,大多数都有此类链接,gmail和yahoo肯定有。

邮件列表只是Firefox提供的实用功能。您可能在另一个类似的软件上找到一个软件的功能,也可能找不到。如果你不这样做,你应该接受一个新的工作环境

请记住,在firefox中,一旦用户选择了默认邮件客户端,您将无法再获得弹出窗口。因此,尝试创建一个解决方案是没有用的,它不会是永久性的


为了减少您的需求,您正在尝试选择用户的邮件客户端。但是网站不能改变用户的系统设置,这是绝对不允许的。为什么?因为如果允许的话,它会给用户打开许多漏洞。

您必须使用JavaScript吗?带目标的普通标签不起作用?我是说,“普通”标签不起作用?你为什么需要JavaScript?我在FF工作。但不是在IE-8中。如果需要更清楚的说明,请告诉我。谢谢
window.open()
返回对
window
对象的引用。我认为将其分配到
location.href
是不合理的,因为这需要
String
。这也是IE将
null
保留为空的原因
function doMailto(EmailAddress) {
    document.location.href = 'mailto:' + EmailAddress;
}
<a id="LnkEmail" href="mailto:d@s.com">