簡體   English   中英

兩個javascript文件沖突

[英]Conflict of two javascript files

我正在使用html5 LeanBack Player,當僅在頁面上使用它的javascritpts時,它可以很好地工作。 但是,如果我將這些JavaScript文件添加到Rails 3項目中,則LeanBack Player的javascript文件會出現錯誤:

Uncaught TypeError: Object function each(iterator, context) {
  var index = 0;
  try {
    this._each(function(value) {
      iterator.call(context, value, index++);
    });
  } catch (e) {
    if (e != $break) throw e;
  }
  return this;
} has no method ‘split’

在函數LBPlayer.prototype.resolveTextPlainSubs中。

我猜想那是因為與Rails中的原生Prototype沖突,但是我不知道如何解決它。 謝謝

確實,這與Array.prototype擴展的Prototypes沖突:

// leanbackPlayer.js @941
srt = srt.split('\n\n');
var i = 0; var isSub = false;
this.vars.subs[lang] = {};
this.vars.subs[lang].label = {};
this.vars.subs[lang].label = label;
this.vars.subs[lang].track = {};

// Error: using for in over an array is just stupid
//        not even using hasOwnProperty is outright pitiful
for(var s in srt) { 

    // this will also yield `each` but that's a function which has no .split() method
    var st = srt[s].split('\n');
    var time; var j;
    if(st.length >= 2) {
        var t = "";

為了修復它,您應該使用簡單的for循環替換for(var s in srt)

for(var e = 0, el = srt.length; e < el; e++) {
    var st = srt[e].split('\n');
    var time; var j;
    if(st.length >= 2) {
        var t = "";
        ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM