Я нашел решение, но оно не самое лучшее, поэтому я все еще ищу решение.См. Мой ответ за то, что я сделал.
ОБНОВЛЕНИЕ - Моя ошибка повторяется, как описано ниже, НО, если я открою Инструменты разработчика 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 Loader и содержимое никогдагрузы.Я понял, что сценарий запускается слишком рано.Я использовал $j(document).ready(function()
Я переключился на: $j(window).load(function()
, и все, казалось, было в порядке, и это работало должным образом, пока я не начну с другой страницы и не зайду на страницу, упомянутую выше.
Если я начну на любой другой странице и нажму на ссылку, у меня возникнет та же проблема!Файл cookie работает правильно и не запускает окно во второй раз.
Другими словами, если я удаляю куки и начинаю со страницы с проблемой, то нет проблемы. НО , если я начну с любой другой страницы (с очищенными файлами cookie) и перейду на вышеуказанную страницу, палитра цветов не загружается должным образом.
Из того, что я могу сказать, $j(window).load(function()
работает неправильно.
Я не получаю ошибок от IE.Я использую IE 8 для тестирования и не могу проверить 9, так как я использую Windows XP.(Мне сказали, что он отлично работает в IE 9, но я не подтвердил это) Сценарий находится в <head>
моего документа.(Если я переместлю скрипт в <body>
, он полностью сломает страницу.)
Я читал о проблемах с DOCTYPE
, которые не были правильными, или о сокращениях и проблемах с цветом в IE.Мой DOCTYPE следующий, который должен быть правильным:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
Любые мысли или идеи очень ценятся!
Вот мой код, который я использую:
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
<div style="display:none">
<div id="gallery-nav-instruct">
<h2>Gallery Navigation Instructions - Step 1</h2><h2 style="text-align:right">
<a style="text-align:right;" class="inline cw" href="
#gallery-enlarge-instruct">Step 2</a></h2>
<p> </p>
<p class="white"><img src="/Images/Pages/gallery-navigation.jpg" width="890" height="450" alt="Gallery Navigation Instructions" /></p>
</div>
</div>
<div style="display:none">
<div id="gallery-enlarge-instruct">
<h2>Gallery Navigation Instructions - Step 2</h2>
<p> </p>
<h2><a class="inline cw" href="#gallery-nav-instruct">Step 1</a> </h2>
<p class="white"><img src="/Images/Pages/gallery-enlarge.jpg" width="890" height="510" alt="Gallery -Enlarged View Instructions" /></p>
</div>
</div>
Еще одно примечание: я использую jAlbum на странице и не вижу конфликтов, но могубыть проблемой?Я не могу опубликовать этот код здесь, так как он превысил бы предел для SO.
Чтобы вызвать эту ошибку, начните с этой страницы , появится лайтбокс.Нажмите Message Examples
(нижний левый угол лайтбокса или первый элемент в меню без лайтбокса).
Вот прямая ссылка на страницу , если это необходимо.(Переход на страницу напрямую не вызовет ошибку.)
Я попытался использовать 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: '/'
});
}
});