Object.prototype 的 UserScript 问题
UserScript issue with Object.prototype
我正在开发一个 UserScript,我认为为对象创建 2 个原型函数会节省更多时间。
Object.prototype.Count = function() {
var size = 0, key;
for (key in this) {
if (this.hasOwnProperty(key)) {
size++;
}
}
return size;
};
Object.prototype.GetEntry = function(index) {
var size = 0, key;
for (key in this) {
if (this.hasOwnProperty(key)) {
if (size == index)
return this[key];
size++;
}
}
return null;
};
这 2 个函数在我的调试控制台上运行得非常好,因为我输入它们并使用它们,但是当我 运行 我的脚本时,它会出现一些奇怪的错误,使我的控制台泛滥。
Uncaught TypeError: U[a].exec is not a function
Uncaught TypeError: (ec[b] || []).concat is not a function
Uncaught TypeError: X[g].exec is not a function
Uncaught TypeError: (Qn[t] || []).concat is not a function
更类似的是,站点的 JavaScript 无法正常工作。
如果没有这些函数,我的脚本会像魅力一样工作。我还有更多关于字符串的原型,但这工作得很好
String.prototype.between = function(prefix, suffix) {
s = this;
var i = s.indexOf(prefix);
if (i >= 0) {
s = s.substring(i + prefix.length);
}
else {
return '';
}
if (suffix) {
i = s.indexOf(suffix);
if (i >= 0) {
s = s.substring(0, i);
}
else {
return '';
}
}
return s;
}
在我的用户脚本中,我包括
- jQuery UI 1.11.4
- jQuery 1.11.1
- Bootstrap 3.3.5
我真的不明白问题出在哪里,因为在调试控制台上它可以正常工作,没有任何错误。
我认为这只是 jQuery 与本机原型的冲突。
所以我只能找到它来定义属性的解决方法,
Object.defineProperty(Object.prototype, 'Count ',{
value : function() {},
enumerable : false
});
Object.defineProperty(Object.prototype, 'GetEntry ',{
value : function() {},
enumerable : false
});
jQuery conflict with native prototype.
我正在开发一个 UserScript,我认为为对象创建 2 个原型函数会节省更多时间。
Object.prototype.Count = function() {
var size = 0, key;
for (key in this) {
if (this.hasOwnProperty(key)) {
size++;
}
}
return size;
};
Object.prototype.GetEntry = function(index) {
var size = 0, key;
for (key in this) {
if (this.hasOwnProperty(key)) {
if (size == index)
return this[key];
size++;
}
}
return null;
};
这 2 个函数在我的调试控制台上运行得非常好,因为我输入它们并使用它们,但是当我 运行 我的脚本时,它会出现一些奇怪的错误,使我的控制台泛滥。
Uncaught TypeError: U[a].exec is not a function
Uncaught TypeError: (ec[b] || []).concat is not a function
Uncaught TypeError: X[g].exec is not a function
Uncaught TypeError: (Qn[t] || []).concat is not a function
更类似的是,站点的 JavaScript 无法正常工作。
如果没有这些函数,我的脚本会像魅力一样工作。我还有更多关于字符串的原型,但这工作得很好
String.prototype.between = function(prefix, suffix) {
s = this;
var i = s.indexOf(prefix);
if (i >= 0) {
s = s.substring(i + prefix.length);
}
else {
return '';
}
if (suffix) {
i = s.indexOf(suffix);
if (i >= 0) {
s = s.substring(0, i);
}
else {
return '';
}
}
return s;
}
在我的用户脚本中,我包括
- jQuery UI 1.11.4
- jQuery 1.11.1
- Bootstrap 3.3.5
我真的不明白问题出在哪里,因为在调试控制台上它可以正常工作,没有任何错误。
我认为这只是 jQuery 与本机原型的冲突。
所以我只能找到它来定义属性的解决方法,
Object.defineProperty(Object.prototype, 'Count ',{
value : function() {},
enumerable : false
});
Object.defineProperty(Object.prototype, 'GetEntry ',{
value : function() {},
enumerable : false
});
jQuery conflict with native prototype.