В настоящее время я получаю сообщение об ошибке в коде Facebook FacePile, и меня сбивает с толку причина.
facepile.php загружает скрипт, который, помимо прочего, имеет эти строки (когда они хорошо напечатаны)):
...
o = document.createElement('script');
o.src = l[n];
o.async = true;
o.onload = h;
o.onreadystatechange = function() {
if (o.readyState in c) {
h();
o.onreadystatechange = null;
}
};
d++;
a.appendChild(o);
...
(a == document.body, d ++ здесь не имеет значения)
Этот код загружает скрипт с src = http://static.ak.fbcdn.net/rsrc.php/v1/yW/r/pmR8u_Z_9_0.js
или чем-то столь же загадочным (имя файла иногда меняется).
В этом сценарии есть строки в самом верху (также когда они хорошо напечатаны):
/*1331654128,176820664*/
if (window.CavalryLogger) {
CavalryLogger.start_js(["\/8f24"]);
}
window.__DEV__ = window.__DEV__ || 0;
if (!window.skipDomainLower && document.domain.toLowerCase().match(/(^|\.)facebook\..*/))
document.domain = window.location.hostname.replace(/^.*(facebook\..*)$/i, '$1');
function bagofholding() {
}
function bagof(a) {
return function() {
return a;
};
}
if (!Date.now)
Date.now = function now() {
return new Date().getTime();
};
if (!Array.isArray)
Array.isArray = function(a) {
return Object.prototype.toString.call(a) == '[object Array]';
};
...
И я получаю сообщение об ошибке "SCRIPT5009: 'Дата «не определена», прямо в части if (!Date.now)
.Отладка вблизи этой точки показывает, что Date
, Array
, Object
, Function
и т. Д. Все не определены.
Э-э ... как?window
существует, как и document
(хотя document.body
является нулевым) и несколько других, но множество предопределенных объектов - нет.Более ранние версии IE, похоже, не имеют этой проблемы, как и другие браузеры, но у нескольких компьютеров, работающих под управлением IE9 (включая чистую виртуальную машину), есть одна и та же проблема.
Я сомневаюсь, что смогу с этим что-нибудь сделать, но мне очень интересно, как это происходит / в чем основная проблема.Кто-нибудь знает, или они могут указать мне на то, что может помочь?
- редактировать:
До публикации этого вопроса я нашел этот сайт: http://www.guypo.com/technical/ies-premature-execution-problem/
Хотя казалось (и до сих пор), что это может быть источником проблемы, я не могу воспроизвести его ни при каких обстоятельствах.Все комбинации, которые я пробовал, все еще имеют дату и т.д .;что неудивительно, так как в противном случае я уверен, что другие увидят гораздо больше проблем с IE.