mailto链接在框架chrome中不起作用(通过https)

时间:2013-10-07 21:00:06

标签: html google-chrome mailto

我在页面上有一个mailto链接。当页面自己加载时,它按预期工作。

然而,当通过Chrome中的框架集加载页面时,没有任何反应。加载开发人员工具后,将显示错误"[blocked] The page at https://mysite.com ran insecure content from mailto:..."

如何修复/解决此问题?

7 个答案:

答案 0 :(得分:27)

是的,使用“top”是诀窍,但你可以单独用HTML做到这一点!

<a target="_top" href="mailto:...">email</a>

答案 1 :(得分:26)

我最近还遇到了一个问题iframe。使用顶部框架工作,应该与所有主流浏览器兼容。

window.top.location = 'mailto:...';

答案 2 :(得分:6)

这是我最终得到的解决方案: 使用Chrome,Firefox,IE6,IE7,IE8,IE9,IE10,IE11,Safari进行测试

$("a[href^='mailto:']").on("click",function() {
    window.top.location = $(this).prop("href");
    return false;
});

答案 3 :(得分:2)

添加目标=&#34; _top&#34;或&#34; _blank&#34;或&#34; _parent&#34;

<a target="_top" href="mailto:a@b.c">email1</a>

<a target="_top" href="mailto:a@b.c">email2</a>

答案 4 :(得分:1)

可能是因为您的父框架集是https,但Chrome现在似乎将mailto链接视为不安全。

我在通过

触发mailto链接时遇到了类似的问题
window.location = 'mailto:...'

将其更改为可解决此问题。

window.open( 'mailto:...')

答案 5 :(得分:1)

这是我的解决方法,直到修复了Chrome错误:

$.browser.chrome = /chrom(e|ium)/.test(navigator.userAgent.toLowerCase()); 

if($.browser.chrome){
     myWindow=window.open("mailto:"+eml+"?subject="+msb,'','width=50,height=50');
     myWindow.close();
} else {
    window.location.href = "mailto:"+eml+"?subject="+msb;
}

对于Chrome,使用window.open()方法生成实例并立即关闭该实例。小窗口会眨眼&#34;在短期内,但将完成这项工作。这是&#34;脏&#34;解决方案,但与Chrome的错误一样多。

对于其他浏览器,可以使用window.location()方法。

答案 6 :(得分:1)

这也有效,不会用Facebook关闭窗口....

<a href="mailto:..." target="_blank">...</a>

$("a[href^='mailto:']").attr('target','_blank');