2013-11-25 26 views
4

好的,所以我们有一个Java applet,它可以将文件上传到服务器。一些have already noticed,该用户需要为我们的网站打开'不安全的'java模式才能使applet正常工作。确定Java的“safeness”的Safari 7,Mac OS X:通过javascript确定Java是否处于“不安全”模式

一种方法是尝试加载一个“假”的小程序,看看它是如何工作。这将需要一些时间来加载JRE,而不是我想要的。

的问题是:我们可以判断,如果Java是在不安全模式下使用JavaScript仅在运行?我真的希望苹果增加了这种可能性。

事实上,一些指向此行为描述的链接将不胜感激。

回答

1

我相信你误解了我原来的职位重新Java小程序和Safari浏览器Safari浏览器7 7实际上并不“块”加载的小程序。 ,如果它是野生6.唯一的问题下加载的小程序将被加载完全相同的方式是,Safari浏览器7(而不是图6和下面)实际上限制从访问文件系统小应用程序,如果该小程序在运行在默认设置“安全模式”下。

所以,如果您的小程序并不需要访问本地文件(和可能其他一些I/O,我没有其他的选择实验虽然) - 它不会发现任何错误。

然而,只要你的小程序试图访问本地文件系统,它会得到FileNotFoundException异常。

所以对我来说,检查applet是否处于“安全模式”的最好方法是简单地尝试访问一个你知道存在并可供用户访问的文件夹(我想你可以开始试验“。”要么 ”..”)。如果不是访问该文件夹,您将拥有FileNotFoundException,您可以假设(并向您的用户建议)该小程序正在“安全模式”下运行。

另外,如果特定的小程序处于“安全模式”或询问Safari 7是否以“安全模式”或“不安全模式”运行所有小程序,我绝对确定无法通过js进行检查。

希望这会有所帮助。

+0

是的,我明白了。事情是 - 我们的小程序确实需要访问文件系统。所需的行为是:用户打开页面,如果applet未被授权访问用户的文件,则会显示一条消息。坏消息是 - JRE需要很长时间才能启动,加载小程序并检查fs访问。所以我正在寻找一种方式来做到这一点在一个有点hacky-workarounded JS的方式。 – Dethariel