我正在尝试为我的某个应用程序使用自定义URI Scheme,但在Chrome中,每个页面只能进行一次调用。我无法在Firefox中重现该错误。
我使用mailto做了一个简单的小提琴:重现问题。它应该发射两次,但Chrome以某种方式阻止了第二次。有办法以某种方式绕过它吗?
我尝试在html代码中创建一个iframe,只是更改了源码,但我得到了相同的结果。
HTML:
<div id="appendhere">
<button id="test">TEST</button>
</div>
JavaScript的:
$('#test').on('click', function(){
for(var i=0;i<2;i++){
$('<iframe />', {
name: 'mail',
id: 'mail'+i,
width: '1',
height: '1',
style: 'visibility:hidden;position:absolute',
src: 'mailto://'+i,
}).appendTo('#appendhere');
}
})
编辑:当我刚刚玩弄这个小提琴时,结果证明如果你没有与电子邮件相关联的默认应用程序,那么上面的小提琴将不会为你开火。
更新 作为一种解决方法,如果我需要附加多个参数,我只需将参数包装到一个令牌中,然后从我的应用程序中使用该令牌来检索参数。 参数的数量基本上可以在0到200之间,所以如果我一次性附加它们,我可能会达到URL限制。也许这也是比附加数百个隐藏的iframe更好的解决方案。 但是,Chrome处理自定义URI方案的方式仍然很有趣。