'это' не определено в хроме, но работает в IE

ниже функция работает в IE, что хорошо, но мне нужно, чтобы она работала и в Chrome, FireFox и т. д. В Chrome я получаю сообщение об ошибке... Вот мой код

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 неопределенного значения..

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

Что я могу сделать по этому поводу? Благодарю вас!


person John    schedule 31.07.2013    source источник


Ответы (1)


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

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

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

person Esailija    schedule 31.07.2013