User.prototype的UserScript问题

时间:2015-08-23 17:25:12

标签: javascript jquery userscripts function-prototypes

我正在开发一个UserScript,我认为为Object创建2个Prototype函数会节省更多时间。

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

这两个函数在我的调试控制台上完全正常工作,因为我输入它们,我使用它们,但是当我运行我的脚本时,它会让我的控制台出现一些奇怪的错误。

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;
}

更像是这样,使得Site的JavaScript无法运行。

没有这些功能,我的脚本就像魅力一样。我还有更多关于String的Prototype,但这很好用

{{1}}

在我的用户名单中,我包括

  1. jQuery UI 1.11.4
  2. jQuery 1.11.1
  3. Bootstrap 3.3.5
  4. 我真的没有得到什么问题,因为在调试控制台上它没有错误或其他什么。

1 个答案:

答案 0 :(得分:12)

我认为这只不过是与本机原型的jQuery冲突。

因此,只有解决方法我可以使用

来定义属性
Object.defineProperty(Object.prototype, 'Count ',{
  value : function() {},
  enumerable : false
});

Object.defineProperty(Object.prototype, 'GetEntry  ',{
  value : function() {},
  enumerable : false
});

jQuery conflict with native prototype.