0
我正在爲IE8開發一個網絡應用程序。IE8 JavaScript Popup「Stackoverflow at line 3」
存在的問題是:我的JavaScript/jQuery代碼顯示一個彈出式「#1在第3行」:
$(new Array(
new Array(/\xE4/g, "ä"), //ä
new Array(/\xF6/g, "ö"), //ö
new Array(/\xFC/g, "ü"), //ü
new Array(/\xC4/g, "Ä"), //Ä
new Array(/\xD6/g, "Ö"), //Ö
new Array(/\xDC/g, "Ü") //Ü
)).each(function(){
$("textarea[name=remarks]").val($("textarea[name=remarks]").val().replace(this[0], this[1]));
$("input[name=firstname]").val($("input[name=firstname]").val().replace(this[0], this[1]));
$("input[name=lastname]").val($("input[name=lastname]").val().replace(this[0], this[1]));
alert("1"); //after popup "1" ==> stackoverflow popup appears...
});
alert("2"); //is not executed
此錯誤並只出現在IE8,在沒有其他的瀏覽器,而不是在IE 10,也沒有在其兼容模式...
有沒有人有一個解決方案?
據我所知,也沒有遞歸,對吧?
編輯:
第一次循環後不會出現錯誤消息。它出現在第六屆「1」 -popup後aktually ...
控制檯是否說了更多,還是隻是彈出錯誤? – 2014-10-02 13:57:21
該代碼非常非常低效。您一直在查找並寫入DOM。我並不覺得IE很驚訝。 – epascarello 2014-10-02 14:27:58
Offtopic但不過。你的解決方案似乎效率很低,因爲你正在做多個DOM操作和查找,而你只需要其中的3個。 '$('textarea [name = remarks],input [name = firstname],input [name = lastname]')。each(function(){var $ this = $(this),val = $ this.val() ; val = val.replace(/(\ xE4 | \ xF6 | \ xFC | \ xC4 | \ xD6 | \ xDC)/ g,function($ 1){return'&'+ {'\ xE4':'a', ...} [$ 1] +'uml;'}); $ this.val(val)});' – 2014-10-02 14:28:33