В настоящее время я получаю сообщение об ошибке в Facebook FacePile, и я сбиваю с толку причину.
facepile.php загружает a script, который, между прочим, имеет эти строки (при печати):
...
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 ++ здесь неактуальен)
Этот код загружает script с помощью src= http://static.ak.fbcdn.net/rsrc.php/v1/yW/r/pmR8u_Z_9_0.js
или что-то в равной степени загадочное (иногда изменяется имя файла).
В этом script эти строки находятся на самом верху (также при печати):
/*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:" Дата "undefined", прямо в части if (!Date.now)
. Отладка рядом с этой точкой показывает, что Date
, Array
, Object
, Function
и т.д. Все undefined.
Э... как? window
существует, как и document
(хотя document.body
равно null) и несколько других, но много предопределенных объектов нет. Более ранние версии IE, похоже, не имеют этой проблемы и других браузеров, но на нескольких компьютерах, работающих под IE9 (включая чистую виртуальную машину), есть одна и та же проблема.
Я сомневаюсь, что я могу что-то с этим поделать, но мне очень любопытно, как это происходит/какова основная проблема. Кто-нибудь знает, или они могут указать мне на что-то, что может помочь?
- изменить:
До публикации этого вопроса я нашел этот сайт: http://www.guypo.com/technical/ies-premature-execution-problem/
Пока он казался (и до сих пор), как будто это может быть источником проблемы, я не могу воспроизвести его ни при каких меньших обстоятельствах. Все комбинации, которые я пробовал, все еще имеют дату и т.д.; что не слишком удивительно, так как в противном случае я уверен, что другие будут видеть больше проблем с IE.