30

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

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

我该如何解决/解决这个问题?

4

7 回答 7

33

是的,使用“top”是诀窍,但您可以单独使用 HTML!

<a target="_top" href="mailto:...">email</a>
于 2014-04-22T16:07:01.870 回答
29

我最近在 iframe 上也遇到了这个问题。使用顶部框架有效并且应该与所有主要浏览器兼容。

window.top.location = 'mailto:...';
于 2013-11-12T18:59:54.273 回答
6

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

$("a[href^='mailto:']").on("click",function() {
    window.top.location = $(this).prop("href");
    return false;
});
于 2013-11-18T16:21:21.580 回答
3

添加目标=“_top”或“_blank”或“_parent”

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

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

于 2014-09-12T03:37:00.953 回答
2

这也将起作用,并且不会关闭 Facebook 的窗口。

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

或者

$("a[href^='mailto:']").attr('target','_blank');
于 2014-08-13T12:12:36.990 回答
1

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

我在通过以下方式触发 mailto 链接时遇到了类似的问题

window.location = 'mailto:...'

将其更改为此解决了它。

window.open( 'mailto:...')
于 2013-10-08T08:44:30.917 回答
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() 方法创建实例并立即关闭该实例。小窗口会在短时间内“闪烁”,但会完成这项工作。这是“肮脏”的解决方案,但与 Chrome 的错误一样多。

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

于 2013-10-22T12:47:53.580 回答