2013-07-31 6 views
3

ниже, эта функция работает в IE, что хорошо, но мне нужно это для работы в Chrome, FireFox и т. Д. ... В Chrome Im получается ошибка ... Heres мой код'this' undefined in chrome, но работает в IE

function loadList(list_name) { 
    var oList = context.get_web().get_lists().getByTitle(list_name); 
    var camlQuery = new SP.CamlQuery(); 
    camlQuery.set_viewXml('<View><Query><Where><Geq><FieldRef Name=\'ID\'/>' + '<Value Type=\'Number\'>1</Value></Geq></Where></Query><RowLimit>10</RowLimit></View>'); 
    this.collListItem = oList.getItems(camlQuery); 

... он говорит, что в Chrome .. «Uncaught TypeError: Невозможно установить свойство 'collListItem' неопределенных ..

Я предполагаю, что это от "этого" .. есть ли разница в том, как хром обрабатывает «это» и т. д. обрабатывает «это»?

Что я могу сделать является ? Спасибо!

+0

полный код пожалуйста – smk

ответ

5

Ваш код невольно (или преднамеренно?) Находится в строгом режиме из-за некоторой небрежной конкатенации или такой, это означает, что вызовы функций не имеют явного места приема undefined как значение this вместо глобального объекта. Старые IE не распознают строгий режим, поэтому он продолжает работать так, как раньше.

Просто измените this на window.

Забавный факт: это случилось с amazon too

+0

Спасибо, Это сработало !!. – John