Windows 8.1 / IE11自定义URL协议打开 – > about:空白

Windows 8.1 / IE 11自定义url协议被搞乱了。 启动后,应用程序被执行,然后浏览器中的URLredirect到about:空白

即使Skype的协议做到这一点:

<a href="skype:_some_skype_account_here_?chat">Chat via Skype</a> 

我已经尝试了一些方法,例如使用iframes,document.location.href = u; 结果不佳。

当链接在iframe中时,这似乎工作,但是否则失败:

  <a href="javascript:'x();'>test</a> document.location.href = 'proto://datadatadata'; 

任何人都知道如何启动协议的应用程序没有浏览器redirect到:空白

我现在把IE11当作一个完全不同的浏览器:chrome,FF,safari,IE7-10和IE11

此版本似乎正在工作:

 var iframe = document.createElement('IFRAME'); iframe.setAttribute('id' 'protoIframe'); iframe.setAttribute('src', 'myapp://datadatadata' ); iframe.style.display = 'none'; iframe.style.width = 1+'px'; iframe.style.height = 1+'px'; document.documentElement.appendChild(iframe); 

更新:(几个月后)

这是我一直用于IE的最终版本。 我检测到浏览器,如果IE浏览器然后做:

 var hst = { pad:'--eof--'} hst.forIE = function(service, data) { var f = document.getElementById('ecPrinterIframe') if (f ) f.parentNode.removeChild(f); var iframe = document.createElement('IFRAME'); iframe.setAttribute('id', 'ecPrinterIframe'); iframe.setAttribute('src', 'myproto://' + data + hst.pad ); iframe.style.display = 'none'; iframe.style.width = 1+'px'; iframe.style.height = 1+'px'; document.documentElement.appendChild(iframe); }