Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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
在.HTA而不是.HTML上运行jQuery时出现终端错误。我可以用一种丑陋的方式来修复它_Jquery_Jquery Plugins_Terminal_Hta_Jquery Terminal - Fatal编程技术网

在.HTA而不是.HTML上运行jQuery时出现终端错误。我可以用一种丑陋的方式来修复它

在.HTA而不是.HTML上运行jQuery时出现终端错误。我可以用一种丑陋的方式来修复它,jquery,jquery-plugins,terminal,hta,jquery-terminal,Jquery,Jquery Plugins,Terminal,Hta,Jquery Terminal,jQuery终端是一个非常好的插件,可以在网页上使用文本模式终端界面。 但在.HTA上运行时会弹出一个错误:“对'in'的操作无效:应为对象” 而不是.HTML。别担心,我已经用一种丑陋的方式把它修好了。问题是:如何修复它 通过jQuery-Terminal.js本身 /* .HTA文件类似于.HTML,但Microsoft Windows内置了不同的 解释器mshta.exe可以运行HTA,而不受.HTML上的所有限制。 */ 我的解决方案是在“jquery-1.10.2.js”中添加一个if

jQuery终端是一个非常好的插件,可以在网页上使用文本模式终端界面。 但在.HTA上运行时会弹出一个错误:“对'in'的操作无效:应为对象” 而不是.HTML。别担心,我已经用一种丑陋的方式把它修好了。问题是:如何修复它 通过jQuery-Terminal.js本身

/* .HTA文件类似于.HTML,但Microsoft Windows内置了不同的 解释器mshta.exe可以运行HTA,而不受.HTML上的所有限制。 */

我的解决方案是在“jquery-1.10.2.js”中添加一个if()语句(所以很难看),如下所示:

    inArray: function( elem, arr, i ) {
        var len;

        if ( arr ) {
            if ( core_indexOf ) {
                return core_indexOf.call( arr, elem, i );
            }

            len = arr.length;
            i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;

            for ( ; i < len; i++ ) {
// ----------- I add this statement -------------------------------------------------------
                if ( typeof arr == 'string' && arr.indexOf(elem) != -1 ) {
                    return i;
                }
// --------------------------------------------------------------------------------------
                // Skip accessing in sparse arrays
                if ( i in arr && arr[ i ] === elem ) {
                    return i;
                }
            }
        }

        return -1;
    },
inArray:函数(元素、arr、i){
瓦伦;
如果(arr){
if(核心指数){
返回核心索引调用(arr,elem,i);
}
len=arr.长度;
i=i?i<0?数学最大值(0,len+i):i:0;
对于(;i
strage的意思是“arr”应该是一个数组。但当它实际上是一个“字符串”时,WWW浏览器 不会抱怨任何事情,但HTA解释器mshta.exe会提醒上述错误。我相信 这是jQuery-Terminal-xxxx.js插件本身的一个bug

我希望jQuery-Terminal-xxxx.js插件有一天能修复它,或者更好地知道如何将它修复到 现在是jQuery-Terminal-xxxx.js吗

简化的示例和所有细节都可以在这里找到,

如果您在源代码中搜索inArray
,您只能找到两个位置,一个是

if (!$.inArray(interpreter_name, name)) {
    names.push(interpreter_name);
    $.Storage.set(name, $.json_stringify(names));
}

这是一个输入错误,它应该是名称(数组)而不是名称(字符串)

最坏情况下,HTA是在IE5.5模式下运行的。您是否已注意到正确的doctype声明和正确的
x-ua-compatible“
-值?请尝试放置
console.log(Error().stack);
以查看调用它的位置。