2013-04-27 7 views
0

Я создаю следующий код и сообщение об ошибке поймать в некоторых браузере телефона:Значение не определено (результат выражения console.time) не является объектом

Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaN97-1/22.0.110; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) BrowserNG/7.1.4 
Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 Nokia5800d-1/52.0.007; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.2.6.9 3gpp-gba 
Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 Nokia5228/40.1.003; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.2.7.4 3gpp-gba 
Mozilla/5.0 (SymbianOS/9.3; Series60/3.2 NokiaC5-00/031.022; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.2.3.1 
Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 Nokia5230/40.0.003; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) Version/3.0 BrowserNG/7.2.7.4 3gpp-gba 

Код:

try { 

var blank_function = function() {}; if (window) window.ll = 9423; 
if (!window.console) { 
    window.console = {time: blank_function, timeEnd: blank_function, log: blank_function, dir: blank_function}; if (window) window.ll = 9425; 
} 
if (!console.time) { 
    console.time = blank_function; if (window) window.ll = 9428; 
} 
if (!console.timeEnd) { 
    console.timeEnd = blank_function; if (window) window.ll = 9431; 
} 
if (!console.log) { 
    console.log = blank_function; if (window) window.ll = 9434; 
} 
if (!console.dir) { 
    console.dir = blank_function; if (window) window.ll = 9437; 
} 


console.time("other"); if (window) window.ll = 9441; 

} catch(e) {if (window.send_exception && typeof window.send_exception == typeof function(){}) {window.send_exception(e);}} 

Что такое проблема с этим? Я не использую возвращаемое значение => оно может быть неопределенным. В других браузерах работает без ошибок.

Исключение данных:

Array (
    [name] => TypeError 
    [message] => Value undefined (result of expression console.time) is not object. 
    [line] => 9442 
    [toString] => TypeError: Value undefined (result of expression console.time) is not object. 
) 

PS Извините за плохой английский.

PPS номер window.ll = строка - 1.

+0

Вы уверены, что созданное здесь исключение? – zeroflagL

+0

Да. Тот же номер строки и значение window.ll равны 9437. – Enyby

+0

Я бы предпочел не быть. Эта ошибка возникает при попытке добавить свойство (или удалить его) к 'console.time', когда console.time не существует. Но я не вижу здесь ничего подобного. А так как номер строки устанавливается после 'console.time (« other »), логично, что после этого проблема возникает. – zeroflagL

ответ

0

Я до сих пор вижу только одно объяснение:

Эта реализация JavaScript содержит window.console объект, но без метода time.

Однако объект не может добавлять методы, поэтому присвоение blank_function ничего не дает.

В то время как после этого вызов не может быть выполнен, так как метод time не существует.