1
私はjsio(jslibs-http://code.google.com/p/jslibs/wiki/jsio)を使用していて、Safariのバグに遭遇しています。 予期しないトークン '='Safari上のJSバグ:予期せぬトークン '='
問題はコードのこの部分にあります。
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
が割り当てられている行に問題があるようです。それをコメントアウトすると、エラーは他の場所に移動しました。誰もこの問題を以前に遭遇しましたか?
ヘルプ?
ありがとうございました。
'function(src、path){var src = src ...}'はバグかもしれません。 'src'を使ってローカル変数を宣言していますが、ローカル変数ではありません。同じ名前の仮パラメータを上書きするだけです。 –
Btw、 'new Function(...)'はグローバルスコープ内でバインドしますが、ES3では 'window.eval'は呼び出しスコープ内でバインドされるため、これら2つは同等ではありません。 IE6の評価問題を回避する1つの方法は、評価している式テキストに文字列 '' 0 ''を付加することです。 –
@MikeSamuel:あなたは次のことを意味しますか?試してみましたが動作しませんでした。 ' \t' return eval( "0、" + src + '\ n // @ sourceURL =' + path); '};' – Navneet