在Javascript中运行协议处理程序而不打开窗口

在Javascript中运行协议处理程序而不打开窗口,javascript,window.open,Javascript,Window.open,我有一个javascript,它使用TextMate和txmt协议打开文件。 它工作得很好,但问题是在运行该脚本时,我有一个空白的Safari窗口 document.onkeydown=function(e){ if(e.which == 17) isCtrl=true; if(e.which == 69 && isCtrl == true) { mywindow = window.open("txmt://open/?url=file://FIL

我有一个javascript,它使用TextMate和txmt协议打开文件。 它工作得很好,但问题是在运行该脚本时,我有一个空白的Safari窗口

document.onkeydown=function(e){
    if(e.which == 17) isCtrl=true;
    if(e.which == 69 && isCtrl == true) {
        mywindow = window.open("txmt://open/?url=file://FILE","myWindow");
        return false;
    }
}

< >我怎么才能打开空白窗口?

< p>你可以尝试使用。可能有用。

“创建链接,然后模拟点击。”这是我第一个想到的方法。我现在已经试过了,但不起作用,所以我编辑了答案,用这个评论回复。它适用于http链接,但不适用于其他任何内容。我把这个留在这里是因为如果有人知道它为什么不起作用,我会感兴趣的

尝试
window.location=“您的链接”

小技巧解决方案。当协议未知时,将打开一个空窗口,您将离开当前页面。如果启用了javascript,请创建一个隐藏的iframe来打开该url。@Erwinus-同意,再加上更改位置可能会破坏某些东西(长轮询是我遇到的一个示例)。关于如何实现iFrame解决方案的一个很好的示例可以在中找到