Я не вижу здесь ничего плохого, но есть лишь несколько вещей, на которые я бы хотел указать.
Прежде, чем я это сделаю, проверьте консоль JavaScript в IE, я полагаю, что более ранний скрипт содержит ошибку, и поэтому этот скрипт никогда не запускается.
Вместо $(document).ready(function(){});
вы можете просто сделать $(function(){})
. это не должно иметь никакого значения.
Также, пожалуйста, не передавайте строки в setTimeout
(они получают eval
'd в глобальной области видимости), передайте функцию.
setTimeout(initialize, 200);
Кроме того, вы уверены, что объявили $jquery
(не должно быть $.error
)?
<script type="text/javascript">
$(function() {
initialize();
});
function checkDivLoaded() {
if ($('#footer').length == 0){
$jquery.error( 'not ready' );
}
}
function initialize() {
try{
checkDivLoaded();
//...more code here
} catch (err) {
setTimeout(initialize, 200);
}
}
</script>
РЕДАКТИРОВАТЬ: Если вы используете IE8 или ниже, он не добавляет console
, если отладчик не открыт (я хотел бы, чтобы любой, кто посчитал это хорошей идеей, был уволен). Если одно из ваших включений использует console.log
, это будет undefined
, что приведет к остановке всех сценариев.
Попробуйте добавить это вверху страницы:
window.console = window.console || {log:function(){}};
Он создаст "поддельный" console
объект, так что будет определено console.log
.