我正在使用jsio(jslibs - http://code.google.com/p/jslibs/wiki/jsio)并且遇到了Safari上的一个错误。 意外的令牌'='
问题在于这部分代码。
this.debugPath = function(path) { return path; }
// IE6 won't return an anonymous function from eval, so use the function constructor instead
var rawEval = (typeof eval('(function(){})') == 'undefined')
? function(src, path) { return (new Function('return ' + src))(); }
: function(src, path) { var src = src + '\n//@ sourceURL=' + path; return window.eval(src); };
// provide an eval with reasonable debugging
this.eval = function(code, path, origCode) {
......................
问题似乎出现在分配rawEval
的行。评论它导致错误转移到其他地方。有没有人遇到过这个问题?
帮助?
感谢。
答案 0 :(得分:0)
如果有人(包括我)再次遇到此问题,这是供将来参考。
Safari在我的案例中抛出的错误是虚假的,或者至少是非常模糊的。
我在我的一个库中定义了一个类。而且我不想存储该类对象的句柄/引用。所以,我做了类似的事情:
function reply(...) {
new ClassName(.....).onHide = bind(...);
..........
}
当我将其更改为以下内容时,Safari停止抱怨。
function reply(...) {
var dg = new ClassName(......);
dg.onHide = bind(...);
..............
}
声明一个新对象并定义其成员属性(或函数)之一可能是个问题。