这个问题让我疯了2天。我做了一个简单的chrome扩展,它调用了一个服务器端程序,该程序返回HTML,然后我将其填充到弹出窗口中的div中。除了包含“mailto:xxx@yyy.com”href的简单锚链接外,一切都很好。不会弹出电子邮件撰写窗口。
解决方法:添加target =“_ blank”属性
我想知道为什么这是必要的。
答案 0 :(得分:5)
它可能与在浏览器的不同处理器中运行的扩展有关,因此需要一个目标属性,以便可以打开一个新的选项卡/窗口...有些网站在显示时不起作用因此,内部扩展弹出窗口,因为扩展框架不会导航到某些页面......
答案 1 :(得分:2)
我知道这是一个老问题,但我遇到了类似的情况。我不得不发送一封电子邮件,但我不得不用一个按钮而不是一个链接来做这件事,并且不得不这样做:
function sendEmail(){
var mail = 'mailto:xxx@yyy.com?subject=Subject&body=Body';
var newWin = window.open(mail);
setTimeout(function(){newWin.close()}, 100);
}
这并不理想,因为它打开了一个对用户可见的新窗口,而不是立即执行。事实上,我的第一次尝试就是这个(它在HTML文件中有效,但在我的扩展名中不起作用):
function sendEmail(){
var mail = 'mailto:xxx@yyy.com?subject=Subject&body=Body';
window.open(mail).close();
}
不确定为什么添加一个计时器使它在这个实例中工作,而不是像在常规HTML文件中那样,但这对我有用,所以我想我会分享。