【问题标题】:Running JNLP on Page Load在页面加载时运行 JNLP
【发布时间】:2015-02-04 14:50:22
【问题描述】:

我想使用 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>

【问题讨论】:

  • 网站是否返回正确的 JNLP 文件内容类型?
  • 是的,内容类型是 jnlp。
  • "content type is jnlp" DYM 字面意思网站返回jnlp?因为那是错误的。它是文件扩展名,不是内容类型。
  • 对不起,我误解了你的回答。网页的内容类型是 text/html 但目标文件直接是 jnlp 文件。像上面的示例代码。
  • “我误解了你的答案” 我的“答案”是评论而不是答案,你似乎仍然不明白。 HTML 的内容类型是text/html & JNLP 的内容类型是application/x-java-jnlp-file 服务器是否返回正确的JNLP 内容类型?检查它的一种方法是使用 JaNeLA,可在我的share drive 获得。

标签: java javascript jquery html jnlp


【解决方案1】:

您好,这不是代码正确的问题,而是 Chrome 配置的问题。我们为我们的一位客户推出的应用程序也有类似的问题。 JNLP 文件默认不受信任,因此 JNCP 文件由 Chrome 下载,然后询问用户是保留还是丢弃该文件。

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

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

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

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

【讨论】:

  • 您好 Matthias,既然 Chrome 已禁用“始终打开此类文件”选项,您是否为您的客户找到了解决方法?如果是,请分享。谢谢你:)
【解决方案2】:

找到了一个简单的解决方案。在&lt;a&gt; 标记的href 属性前面加上jnlp: 方案/协议,如href="jnlp:XXX"。例如,根据 OP 的示例,这是可行的:

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

在 Chrome v89.0.4389.72 上测试。

【讨论】:

    【解决方案3】:

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

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

    为了让IE11重新运行,您可以将站点添加到安全级别为中低的Intranet区域。 (Internet 选项--> 安全性--> Intranet)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-21
      • 1970-01-01
      • 2016-08-18
      相关资源
      最近更新 更多