【问题标题】:Javascript mailto using window openJavascript mailto使用窗口打开
【发布时间】:2019-01-12 03:08:32
【问题描述】:

我目前有一个设置有 5 个单选选项的表单。我有一个 switch 语句,具体取决于您选择的选项,它决定了电子邮件的去向。

在我的开关里面,我有这段代码。

window.open("mailto:"+emailTo+'?cc='+emailCC+'&subject='+emailSub+'&body='+emailBody);

当它打开包含所有内容的电子邮件客户端时一切正常,但它也在浏览器中打开一个空白页面。

是否有其他方法可以实现此目的或防止打开空白窗口但仍使其就像您单击了 href:mailto 一样?

【问题讨论】:

  • 我认为这是一个浏览器设置,因此您无法控制它是如何工作的。
  • 您可以使用window.location.href = "mailto:mail@example.org";,但这只有在浏览器设置中未设置Gmail打开等情况下才有效。
  • 你可以关掉那个窗口,不是吗?

标签: javascript


【解决方案1】:

代替:

window.open("mailto:"+emailTo+'?cc='+emailCC+'&subject='+emailSub+'&body='+emailBody);

你可以试试:

location.href = "mailto:"+emailTo+'?cc='+emailCC+'&subject='+emailSub+'&body='+emailBody;

【讨论】:

    【解决方案2】:

    window.open 中的第二个参数是目标。

    window.open('mailto:'+emailTo+'?cc='+emailCC+'&subject='+emailSub+'&body='+emailBody, '_self'); 应该可以解决问题。

    【讨论】:

      【解决方案3】:

      Location.href 似乎不适用于 chrome。 我是这样做的:

      x=window.open("mailstring");
      x.close();
      

      非常适合我。

      【讨论】:

      • 如果您的意思是作为变量或占位符,则不应将邮件字符串放入撇号
      • 这将无法始终如一地工作。在我的机器上,它有时会在 mailto 完成之前关闭窗口。
      【解决方案4】:

      在您的“window.open”语句之后,尝试运行“if 语句”来检查是否打开了一个新窗口以便将其关闭。

      if (win && win.open && !win.closed) 
          {   
          win.close();
          }
      

      这将很快发生,因此用户可能会注意到在电子邮件应用程序打开之前打开和关闭了一个窗口。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-29
        • 1970-01-01
        • 1970-01-01
        • 2011-08-05
        • 2023-04-03
        • 2012-12-17
        • 2016-11-08
        相关资源
        最近更新 更多