2011-02-11 2 views
0

私はjavascriptで次の機能を持っています。 Firefox以外のすべてのブラウザで動作します。このブラウザの部分文字列キーワードにはいくつかの問題があるようです。JavaScriptの文字列操作によるFirefoxのバグ

function EvalMonthYear() { 

    var RawMonth = $.trim($('#MonthList').val()); 
    var SpacePosition = RawMonth.lastIndexOf(' ') + 1; 

    var TheYear = $.trim(RawMonth.substring(SpacePosition, RawMonth.lenght)); 
    var TheMonth = IndexOfMonth($.trim(RawMonth.substring(0, SpacePosition))); 
}; 

がmonthlistには目標が、それはすべてのブラウザで動作するように変数TheYearとTheMonthを満たすことである2011年1月または2009年5月のような月/年の文字列が含まれています。

この問題に遭遇し、良い解決策を考えることができれば、これは役に立ちます。

ありがとうございました。

答えて

1

これを試してみてください:

function EvalMonthYear() { 
    var RawMonth = $.trim($('#MonthList').val()); 
    var MonthYear = RawMonth.split(" "); 

    var TheYear = MonthYear[1]; 
    var TheMonth = MonthYear[0]; 
}; 
+0

非常にエレガントな回避策。 – frenchie

4

はたぶん、あなたはあなたの元のコードは、私のためのFirefox 4B11で動作

RawMonth.lenght 

RawMonth.length 

として書き直したいので、3.6で問題になる可能性があります。 RawMonth.lenghtundefinedなので、あなたのタイプミスはほとんどのブラウザでうまくいくと思います。これは引数を渡さないのと同じです。 (あなたが arguments配列を検査した場合には、少し違うのです。)

+0

ああ!確かに:)フレンチバグ。 – frenchie