奇怪的js数组在IE8中分配错误
-
05-07-2019 - |
题
此代码在ie8中导致一个奇怪的错误。它来自链接文本中的MicrosoftAjaxAdoNet.js
function Sys$Data此代码在ie8中导致一个奇怪的错误。它来自链接文本中的MicrosoftAjaxAdoNet.js
[].indexOf || (Array.prototype.indexOf = function (v, n) {
n = (n == null) ? 0 : n;
var m = this.length;
for (var i = n; i < m; i++)
if (this[i] == v) return i;
return -1;
在调用此函数之前,this._changesetEntries始终为null。我希望在调用此函数后,his._changesetEntries将变为空数组。它发生在chrome,firefox,ie8中。在ie8中并不总是如此,我发现有时这个函数会创建一个方法“ indexOf(v,n)”。而不是空数组。
这种奇怪的行为导致此处记录的其他错误链接文本
编辑:我现在可以将此问题从我的代码中隔离出来,当我使用fish-eye jquery插件时会出现此问题。在这个插件中,有类似的内容
<*>
})
这是此问题的原因。
AdoNetBatchWriter$startChangeSet() {
this._changesetBoundary = "changeset_" + this._createBoundary();
this._changesetEntries = [];
}
在调用此函数之前,this._changesetEntries始终为null。我希望在调用此函数后,his._changesetEntries将变为空数组。它发生在chrome,firefox,ie8中。在ie8中并不总是如此,我发现有时这个函数会创建一个方法“ indexOf(v,n)”。而不是空数组。
这种奇怪的行为导致此处记录的其他错误链接文本
编辑:我现在可以将此问题从我的代码中隔离出来,当我使用fish-eye jquery插件时会出现此问题。在这个插件中,有类似的内容 <*>})
这是此问题的原因。
解决方案
你的问题中的'有时'是关键:在什么条件下 this._changesetEntries
得到一个函数而不是一个空数组?有些页面加载?一些调用dataService?一旦你有了测试用例,答案就会变得更加明显。
其他提示
你能发布你如何使用它吗?我们所能做的就是推测:
这看起来像一个构造函数。您是否正在使用 new Sys $ Data $ _AdoNetBatchWriter $ startChangeSet()
进行实例化?
不隶属于 StackOverflow