Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
deployJava.js在IE 11中未检测到JRE_Java_Internet Explorer_Deployjava - Fatal编程技术网

deployJava.js在IE 11中未检测到JRE

deployJava.js在IE 11中未检测到JRE,java,internet-explorer,deployjava,Java,Internet Explorer,Deployjava,我使用deployJava.js包含如下小程序: <script> var attributes = { name:'ForrestGump', id:'ForrestGump', codebase:'java/', code:'ForrestGump', cache_archive:'ForrestGumpSigned.jar', cache_option:'Plugin', initial_f

我使用deployJava.js包含如下小程序:

<script>
    var attributes = {
        name:'ForrestGump', id:'ForrestGump',
        codebase:'java/', code:'ForrestGump',
        cache_archive:'ForrestGumpSigned.jar',
        cache_option:'Plugin',
        initial_focus:false,
        width:1, height:1 };
    var parameters = { } ;
    var version = '1.7.0' ;
    deployJava.runApplet(attributes, parameters, version);
</script>

变量属性={
姓名:'ForrestGump',id:'ForrestGump',
代码库:'java/',代码:'ForrestGump',
cache_归档文件:'ForrestGumpSigned.jar',
缓存_选项:'Plugin',
初始焦点:false,
宽度:1,高度:1};
var参数={};
var版本='1.7.0';
runApplet(属性、参数、版本);
一些使用IE11(在Windows7中,我不确定Windows8.1)的用户抱怨说,即使已经安装了最新的Java,它也会自动将它们转发到Java下载页面(在加载小程序之前)。我已经通过使用和设置var version='1.1'验证了这一点;在上面的js中,他们说将不会强制特定版本

验证小程序告诉我Java已经安装,即使版本为='1.1',它仍然会重定向它们。我注意到的另一件事是,没有为它们加载。它说没有安装java。重新启动浏览器和电脑似乎对此没有影响


以前有人碰到过这个吗?关于如何禁用deployJava转发到下载页面的任何建议,或者IE 11解决方案。

经过深入研究后,这似乎是由于Microsoft更改了Internet Explorer 11报告的用户代理(请参阅)。“deployJava.js”库有自己的浏览器检测函数(getBrowser()),无法正确处理IE11的用户代理

OpenJDK的以下错误报告讨论了此问题:

我尝试了deployJava.js()的“官方”版本,但它还没有更新。建议的解决方法是修改“getBrowser”方法,以便在“MSIE”之外查找“trident”。如果您不想等待Oracle进行更新,您可以创建自己的deployJava.js本地副本并替换:

(o.indexOf(“msie”)!=-1)


((o.indexOf(“msie”)!=-1)|(o.indexOf(“trident”)!=-1))

正如T先生在最新的部署java.js中提到的那样,Oracle已经解决了这个问题。
但我仍然遇到错误,我仍然被重定向到

尽管我在IE11中安装了最新的JRE。 在深入研究了deployJava.js之后, 在函数测试中使用Activex()得到结果

我将上面的函数修改为下面的

if("ActiveXObject" in window)
{
  //do nothing
}
else if (typeof ActiveXObject == "undefined" || !ActiveXObject) {
   g("[testUsingActiveX()] Browser claims to be IE, but no ActiveXObject object?");
   return false
}

上述解决方案归功于

虽然不是一个很好的解决方案,但在IE中取消兼容性视图解决了问题。

这解决了问题,谢谢。在我的Windows8机器上测试它很困难,因为微软不会让你下载IE11,除非你使用Win7或8.1。想想看,我已经尝试过了,但似乎不适合我。其他人也建议以管理员的身份运行IE。这似乎对一些人起了作用。我正在使用Windows7x86和IE11运行新的JavaU51更新。他们新版本的deployJava.js检查了trident。但在这一点上仍然不起作用。看起来修复程序将进入u55。希望它能在那时很快奏效。
if("ActiveXObject" in window)
{
  //do nothing
}
else if (typeof ActiveXObject == "undefined" || !ActiveXObject) {
   g("[testUsingActiveX()] Browser claims to be IE, but no ActiveXObject object?");
   return false
}