mailto uri-javascript window.open然后close,在<;IE8 函数SendInfo(href){ var subject=“一些信息”; var body=“我想您可能会发现这个信息很有趣:\r\n\r\n”; var uri=“mailto:?subject=”; uri+=encodeURIComponent(主题); uri+=“&body=”; uri+=encodeURIComponent(body); win=窗口打开(uri); win.close(); }

mailto uri-javascript window.open然后close,在<;IE8 函数SendInfo(href){ var subject=“一些信息”; var body=“我想您可能会发现这个信息很有趣:\r\n\r\n”; var uri=“mailto:?subject=”; uri+=encodeURIComponent(主题); uri+=“&body=”; uri+=encodeURIComponent(body); win=窗口打开(uri); win.close(); },javascript,location,uri,document,mailto,Javascript,Location,Uri,Document,Mailto,在FF、Chrome和IE9中,新的选项卡/窗口按其应有的方式关闭 但是在IE8及以下版本中,会打开一个新窗口,用户会收到一条安全警告 有没有更好的方法来防止这些问题 jsbin:打开需要关闭的窗口不是最佳选择。 如果未收到警告,可以使用如下设置超时: function SendInfo(href) { var subject= "Some information"; var body = "I thought you might find this information in

在FF、Chrome和IE9中,新的选项卡/窗口按其应有的方式关闭

但是在IE8及以下版本中,会打开一个新窗口,用户会收到一条安全警告

有没有更好的方法来防止这些问题


jsbin:

打开需要关闭的窗口不是最佳选择。 如果未收到警告,可以使用如下设置超时:

function SendInfo(href) {
    var subject= "Some information";
    var body = "I thought you might find this information interesting:\r\n\r\n<";
    body += document.location;
    body += ">";
    var uri = "mailto:?subject=";
    uri += encodeURIComponent(subject);
    uri += "&body=";
    uri += encodeURIComponent(body);
    win = window.open(uri);
    win.close();
}
相反,我建议你这样做

win = window.open(uri);
setTimeout(function() { win.close();},1000);
函数SendInfo(href){
var subject=“一些信息”;
var body=“我想您可能会发现这个信息很有趣:\r\n\r\n”;
var uri=“mailto:?subject=”;
uri+=encodeURIComponent(主题);
uri+=“&body=”;
uri+=encodeURIComponent(body);
返回uri;
}

把这个
打开(“,”self“,”)在这个
win.close()前面我也做了一些挖掘,发现这可能发生在本地开发时,而不是在发布后(不同的区域等),这些更改实际上没有返回任何内容-Outlook没有打开,也没有抛出任何错误,而不是
onmousedown
而不是
onclick
function SendInfo(href) {
  var subject= "Some information";
  var body = "I thought you might find this information interesting:\r\n\r\n<";
  body += href; // or document.location;
  body += ">";
  var uri = "mailto:?subject=";
  uri += encodeURIComponent(subject);
  uri += "&body=";
  uri += encodeURIComponent(body);
  return uri;
}

<a href="#" onclick="this.href=SendInfo(location.href)">Tell a friend</a>