【问题标题】:AS3 - mailto is opening a new browser windowAS3 - mailto 正在打开一个新的浏览器窗口
【发布时间】:2010-11-02 14:08:20
【问题描述】:
问题简介 -
对于 AS3,我希望当人们单击电子邮件地址时,它会打开他们的电子邮件程序。因此我这样做:
mc.addEventListener(MouseEvent.CLICK, sendEmail);
function sendEmail(e:MouseEvent):void{<br />
navigateToURL(new URLRequest("mailto:name@domainname.com"));<br />
}
问题:
每次用户单击影片剪辑时,都会打开他们的电子邮件程序。但是,浏览器也会打开一个新窗口。单击具有电子邮件地址的影片剪辑时,如何避免浏览器打开新窗口?
【问题讨论】:
标签:
flash
actionscript-3
flash-cs4
【解决方案1】:
试试
navigateToUrl(urlRequest, "_self");
来自API
【解决方案2】:
邮件程序正在打开,因为您将邮件 ID 作为 URL。我认为您的意图是在用户单击链接时发送邮件对吗?
并使用 CookieOfFortune 所说的在同一窗口中打开。在
navigateToUrl(urlRequest, "_self");
第二部分_self,将目标窗口设置为self。
如果你想在新窗口中打开你必须使用navigateToUrl(urlRequest, "_blank");
【解决方案3】:
对此有一个非常简单的答案。导航到 URL 将打开一个新的浏览器窗口或根据指定的方式自行执行,如果没有打开窗口,则无论如何都会打开一个。使用sendToURL而不是navigateToURL,我刚刚测试过,效果很好。
sendToURL(new URLRequest("mailto:name@example.com"));
sendToURL也是flash.net包中的一个函数
干杯!
【解决方案4】:
我们可以使用下面的代码和ExternalInterface
其中“url”是mailto: URL。即:
mailto:abc@example.com?subject=Hello&body=defg
//Mailto Links from Flash
ExternalInterface.call("function(link){var wEmail = window.open(link, '_blank'); setTimeout(function(){ wEmail.close();}, 70);}", url);
【解决方案5】:
2016 年更新
不过,我知道这是一个非常老问题;
navigateToURL(new URLRequest("mailto:name@domainname.com"), "_blank");
在 Outlook 中自动打开一封新电子邮件,而无需打开新的浏览器选项卡。
Adobe Animate 2015.2