我在页面上有一个 mailto 链接。当页面自行加载时,它按预期工作。
但是,当页面通过 Chrome 中的框架集加载时,没有任何反应。加载开发人员工具后,将"[blocked] The page at https://mysite.com ran insecure content from mailto:..."
显示错误。
我该如何解决/解决这个问题?
我在页面上有一个 mailto 链接。当页面自行加载时,它按预期工作。
但是,当页面通过 Chrome 中的框架集加载时,没有任何反应。加载开发人员工具后,将"[blocked] The page at https://mysite.com ran insecure content from mailto:..."
显示错误。
我该如何解决/解决这个问题?
是的,使用“top”是诀窍,但您可以单独使用 HTML!
<a target="_top" href="mailto:...">email</a>
我最近在 iframe 上也遇到了这个问题。使用顶部框架有效并且应该与所有主要浏览器兼容。
window.top.location = 'mailto:...';
这是我最终得到的解决方案:使用 Chrome、Firefox、IE6、IE7、IE8、IE9、IE10、IE11、Safari 测试
$("a[href^='mailto:']").on("click",function() {
window.top.location = $(this).prop("href");
return false;
});
添加目标=“_top”或“_blank”或“_parent”
<a target="_top" href="mailto:a@b.c">email1</a>
<a target="_top" href="mailto:a@b.c">email2</a>
这也将起作用,并且不会关闭 Facebook 的窗口。
<a href="mailto:..." target="_blank">...</a>
或者
$("a[href^='mailto:']").attr('target','_blank');
可能是因为您的父框架集是 https,但 Chrome 现在似乎将 mailto 链接视为不安全。
我在通过以下方式触发 mailto 链接时遇到了类似的问题
window.location = 'mailto:...'
将其更改为此解决了它。
window.open( 'mailto:...')
在修复 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() 方法。