Colorbox не загружается должным образом в IE

Я нашел решение, но оно не лучшее, поэтому я все еще ищу решение. Смотрите мой ответ о том, что я сделал.


ОБНОВЛЕНИЕ - Моя ошибка сохраняется, как описано ниже, НО если я открою инструменты разработчика IE, ошибка исчезнет! Если я закрою браузер и снова открою, ошибка появится снова!

ОБНОВЛЕНИЕ 2 - Я попытался вставить следующий код в свой JS, чтобы посмотреть, решит ли это проблему, но это не помогло:

if (!("console" in window) || !("firebug" in console)) {
  var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
  window.console = {};
  for (var i = 0, len = names.length; i < len; ++i) {
    window.console[names[i]] = function(){};
  }
}

А затем это:

var console = {};
console.log = function(){};

Я также просмотрел свои файлы JS и никогда не сталкивался с функцией console.log, которая вызывала бы ошибку.


Это запутанный вопрос, и я постараюсь объяснить. Я устанавливаю файлы cookie на странице, которая будет отображать лайтбокс при первом посещении. Он отлично работает в FF, Chrome и т.д., но не в IE.

То, что происходит в IE, - это скрипт для вызова моего лайтбокса (colorbox) срабатывает, но все, что я вижу, - это вращающийся загрузчик AJAX, и контент никогда не загружается. Я понял, что сценарий сработал слишком рано. Я использовал $ j (document) .ready (function () Я переключился на: $ j (window) .load (function () , и все вроде бы в порядке, и это сработало правильно, пока я не начну с другой страницы и не перейду на страницу, упомянутую выше.

Если я начинаю с любой другой страницы и нажимаю ссылку, у меня такая же проблема! Файл cookie работает правильно и не запускает окно во второй раз.

Другими словами, если я очищу файлы cookie и начну со страницы с проблемой, то никаких проблем не будет. НО , если я начинаю с любой другой страницы (с очищенными файлами cookie) и перехожу на указанную выше страницу, окно цвета не загружается должным образом.

Насколько я могу судить, $ j (window) .load (function () работает некорректно.

Я не получаю ошибок от IE. Я использую IE 8 для тестирования и не могу test 9, так как я использую Windows XP (мне сказали, что он отлично работает в IE 9, но я этого не подтвердил). Сценарий находится в моего документа (если я перемещу сценарий в он полностью разрывает страницу.)

Я читал о проблемах DOCTYPE , которые неверны или сокращены, и проблемы с цветовым окном в IE. Мой DOCTYPE следующий что должно быть правильным:



Любые мысли и идеи приветствуются!

Вот мой код, который я использую:

Javascript

var $j = jQuery.noConflict();
$j(window).load(function() {
  //window.onload = function() does not function properly either...
  if(!$j.cookie('gallerycookie')){
    $j.colorbox({
      inline:true, 
      href:"#gallery-nav-instruct"
    });
    $j.cookie("gallerycookie", 1, {
      expires: 30, 
      path: '/'
    });
  }
});

HTML

Еще одно примечание: я использую jAlbum на странице и Я не вижу никаких конфликтов, но может быть проблема? Я не могу опубликовать этот код здесь, так как он превысит лимит сообщений для SO.

Чтобы вызвать эту ошибку, начните с этой страницы , появится лайтбокс Нажмите Message Ex. amples (нижний левый угол лайтбокса или первый элемент в меню без лайтбокса).

Вот прямая ссылка на страницу при необходимости. (Переход на страницу напрямую не вызовет ошибку.)

Я попытался использовать window.onload = function () , и возникла та же проблема.

Я попытался использовать обработчик событий для запуска сценария после загрузки div, который даже не запустил сценарий вообще. вот этот код:

var $j = jQuery.noConflict();
$j('#gallery-nav-instruct').load(function() {
  if(!$j.cookie('gallerycookie')){
    $j.colorbox({
      inline:true, 
      href:"#gallery-nav-instruct"
    });
    $j.cookie("gallerycookie", 1, {
      expires: 30, 
      path: '/'
    });
  }
}); 

8
задан L84 25 November 2011 в 23:15
поделиться