在页面加载上运行JNLP

时间:2015-02-04 14:50:22

标签: java javascript jquery html jnlp

我想使用javascript在页面加载时运行JNLP文件。

Internet Explorer运行JNLP没有任何问题,但Chrome下载了JNLP。

但如果我手动点击链接,Chrome也会运行JNLP。

是否有解决方案在页面加载时运行JNLP而无需在Chrome上进行任何手动点击?

这是我的示例代码:

<head>
<script>
    function codeAddress() {
        document.getElementById('mylink').click();
    }

    window.onload = codeAddress;        
</script>
</head>
<body>
    <a id="mylink" target="_self" href="http://localhost/projects/myjnlp.jnlp">go</a>
</body>

3 个答案:

答案 0 :(得分:1)

嗨,这不是正确的代码问题,而是Chrome配置问题。我们为我们的客户推出了一个类似的问题。默认情况下不会信任JNLP文件,因此Chrome会下载JNCP文件,然后会询问用户是保留还是丢弃该文件。

一旦用户保留文件,我们就可以选择&#34;始终打开此类型的文件&#34;在下载项目的菜单中。请参阅以下屏幕截图以供参考:

enter image description here

在我们的案例中,应用程序在Intranet上运行,我们可以帮助用户正确配置chrome。但是在我的情况下,我建议您使用jQuery来确定浏览器并在窗口的左下角显示一个指令框(下载项目将显示在其中)。

假设您的页面左下角有隐藏的DIV,并且您已经包含了jQuery browser plugin

$.browser.chrome = /chrom(e|ium)/.test(navigator.userAgent.toLowerCase()); 
if($.browser.chrome){
    $('#chromeInstructions').show();
}

答案 1 :(得分:0)

不,Chrome不能。最新的Chrome不再提供“始终打开此类文件”。此选项已禁用且为灰色。

在IE11中,您的示例代码在页面加载时不会自动打开JNLP文件,而是要求下载。即使内容类型是“application / x-java-jnlp-file”。但是如果我手动点击“Go”href,它就会完美无缺。 IE打开JNLP文件并自动运行Web启动应用程序。

要使IE11再次运行,您可以将站点添加到Intranet区域,安全级别为中等低。 (互联网选项 - &gt;安全性 - &gt;内联网)。

答案 2 :(得分:0)

找到了一个简单的解决方案。使用 href 方案/协议为 <a> 标记的 jnlp: 属性添加前缀,例如 href="jnlp:XXX"。例如,基于 OP 的示例,这有效:

<a id="mylink" href="jnlp:http://localhost/projects/myjnlp.jnlp">go</a>

在 Chrome v89.0.4389.72 上测试。