2014-01-21 6 views
1

Я использую jQuery 1.10.2, и следующий вызов моей функции dialogOpen отлично работает в IE9 +, но я получаю следующую ошибку в IE8:Почему этот скрипт не работает в IE8?

Объект не поддерживает это свойство или метод. Есть идеи ?

dialogOpen($(this).attr("id"), $(this).find(".tdStyle").html().trim(),  $(this).find(".tdQtyOnHand").html().trim(), $(this), $(this).find(".tdPlantID").html().trim()); 

Благодаря

+1

'$ (это) .find (». tdStyle "). html(). trim()' '.trim()' является проблемой. Сообщение об ошибке должно было сделать это очевидным. Проведение небольшого исследования этого метода указывает на то, что оно не поддерживается в IE <9 –

+0

@KevinB Сообщения об ошибках IE8 не очень полезны. Он просто утверждает, что 'Object не поддерживает это свойство или метод'. Это могла быть любая точка разыменования ('.') в этой строке, не обязательно' .trim() ', насколько мы можем получить результаты непосредственно из сообщения об ошибке. Очевидно, кто-то, знакомый с такой ошибкой и цепочкой jQuery, может довольно быстро заметить, что это скорее '.trim()', но это требует опыта. – ajp15243

+0

Kevin B и ajp15243 благодарим за ответы. –

ответ

4

.html() возвращает объект типа String и IE не поддерживает метод .trim() на строки, к счастью, JQuery предоставляет альтернативу, $.trim(String). Вы также можете добавить его самостоятельно (но если честно с JQuery уже загружена, почему бы вам), следуя this exhaustive article (что позволит вам сохранить исходный код полностью немодифицированного):

if (!String.prototype.trim) { 
    String.prototype.trim = function() { 
    return this.replace(/^\s+|\s+$/gm, ''); 
    }; 
} 
+2

Что, и это IE8 ... чем раньше мир перестанет поддерживать его, тем лучше :-P – SpYk3HH

+1

Правда, может быть, я должен замалчиваться о том, как преодолеть IE 8 и просто предложить ссылку на http://browsehappy.com/ :) Этот недостающий метод в IE несколько раз меня бил –

+1

Почему ms не подсказывают пользователям обновляться, как и все остальные, которых я не понимаю – andrew

Смежные вопросы