gpt4 book ai didi

javascript - 两个 javascript 文件冲突

转载 作者:行者123 更新时间:2023-11-28 02:48:31 26 4
gpt4 key购买 nike

我正在使用 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(var s in srt) 替换为简单的 for 循环:

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 = "";
...
}

关于javascript - 两个 javascript 文件冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4322248/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com