Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.08.2012, 09:31
Аспирант
Отправить личное сообщение для zevilz Посмотреть профиль Найти все сообщения от zevilz
 
Регистрация: 24.05.2012
Сообщений: 93

Проблема с выполнением скрипта с задержкой [РЕШЕНО]
Имеется сайт с интегрированным форумом PunBB. На сайте подключен jquery, на форум установлен плагин, подключающий jquery и jquery с сайта, т.к. мои скрипты не работают через плагин форума. Также подключен плагин dc-floater, который создает свой div контейнер с содержимым моего контейнера #subscribe:
$(document).ready(function() {
	$('#subscribe').addClass("display_none");
});

$(document).delay(15000).queue(function() {

	$('#subscribe').dcFloater({tabText: 'Подпишись!',event: 'click'});

	$('.dc-floater .tab').hover(
		function() {
			$(this).addClass("tab_focus");}
		,function() {
			$(this).removeClass("tab_focus");}
	);
});

В этом скрипте после загрузки страницы прячется контейнер #subscribe и через 15 секунд создается контейнер при помощи плагина dc-floater.
На сайте все работает отлично, но на форуме в консоли через 15 секунд пишет ошибку: Object has no method dcFloater.
Если, например поставить задержку 15милисекунд, то ошибки не будет и контейнер появится. Если отключить форумовский плагин jquery, то все нормально, но не работают скрипты форума. Как я понял, если задержка выполнения скрипта менее времени загрузки страницы, то все проходит отлично, но если задержка больше времени загрузки страницы, то форум как бы вообще прекращает работу всех скриптов и поэтому возникает ошибка. Не подскажете в чем проблема и куда копать? Почему это происходит? Заранее спасибо за ответы

Последний раз редактировалось zevilz, 19.08.2012 в 16:12.
Ответить с цитированием
  #2 (permalink)  
Старый 19.08.2012, 13:14
Аватар для LittlePony
Кандидат Javascript-наук
Отправить личное сообщение для LittlePony Посмотреть профиль Найти все сообщения от LittlePony
 
Регистрация: 19.08.2012
Сообщений: 100

надеюсь, я правильно поняла суть вопроса.
Можно сделать последовательное выполнение скриптов. Явно указать, что определённый скрипт выполнять только после загрузки другого.
Примерно так:
var otherscript = document.createElement('script');
otherscript.type = 'text/javascript';
otherscript.async = true;
otherscript.src = ('otherscript.js');
document.getElementsByTagName('head')[0].appendChild(otherscript);
otherscript.onload = function(){
и тут уже то, что должно выполняться после загрузки otherscript.js
}
Ответить с цитированием
  #3 (permalink)  
Старый 19.08.2012, 16:09
Аспирант
Отправить личное сообщение для zevilz Посмотреть профиль Найти все сообщения от zevilz
 
Регистрация: 24.05.2012
Сообщений: 93

Немного не так. Перековырял код форума, нашел вот такой код:
$LAB.setOptions({AlwaysPreserveOrder:false})
.script("http://my-site.net/forum/extensions/pun_jquery/js/jquery-1.7.1.min.js").wait()
.script("http://my-site.net/forum/extensions/fancy_jquery_addons/js/fancy_jquery_addons.min.js").wait()

Похоже после загрузки страницы никакие скрипты не могут исполняться, кроме указанных. Код добавляется при установке расширений.

Скопировал одно из расширений и изменил данные на свои и подключил floater. После установки созданного расширения к вышенаписанному коду добавился вот этот:
.script("http://my-site.net/forum/extensions/subscribe/js/jquery.floater.1.2.js").wait();

В результате, все заработало как надо=)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с ожиданием загрузки станицы у консольного скрипта. Timon Общие вопросы Javascript 17 13.07.2012 18:33
Асинхронная подгрузка скрипта с немедленным выполнением его кода bukvaG Общие вопросы Javascript 4 11.06.2012 17:55
Проблема адаптации скрипта wfire jQuery 2 05.01.2012 13:13
Проблема с выводом скрипта на страницу Mike_S. Общие вопросы Javascript 8 14.06.2011 07:26
Проблема с переносом скрипта на файерфокс. antidem Firefox/Mozilla 1 21.01.2011 10:31