Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2013, 12:47   #1
impulsgraw
Верховный Судья
Пользователь
 
Аватар для impulsgraw
 
Регистрация: 23.11.2010
Сообщений: 82
Печаль Drupal и ajax переключение страниц

Здравствуйте! Пытался сам реализовать переход страницами без их перезагрузки (ajax методом), но проблема в том, что скрипты, подгружающиеся в head не инициализируются (то есть их jquery обработчики $(document).ready() и $(window).load() не срабатывают, а вызвать их я не могу - не получается).
Основная задача: сделать ajax перезагрузку страницы без перезагрузки блока с тегом iscritical="true" и criticalid="i1", который имеется на каждой странице, и который зависит от скрипта, подключаемого в head . Никак не получается реализовать. Может, вы знаете какие-нибудь готовые модули, которые смогут мне помочь?
Вот мой код:

Код:
function strpos(haystack, needle, offset){
	var i = haystack.indexOf( needle, offset ); // returns -1
	return i >= 0 ? i : false;
}

$(document).ready(function(){
	$('a').click(function(){
		var href_ = ($.trim($(this).attr('href'))).toLowerCase();
		var href = $(this).attr('href');

		if((href.substr(0, 1) != '#') && (href.substr(0, 11) != 'javascript:')){
			IG_AJAX_PAGELOAD(href);
			return false;
		}
	});
});

function IG_AJAX_PAGELOAD(href){
	$.get(href, function(res){
		if((strpos(res.toLowerCase(), '<body>', 0) == false) || (strpos(res.toLowerCase(), '</body>', 0) == false))
			return false;
		var critical_block_html_array = new Array();
		$('div[iscritical="true"]').each(function(){
			critical_block_html_array[$(this).attr('criticalid')] = $(this).html();
		});

		//console.log(document.ready);

		document.body.innerHTML = res.substr(strpos(res.toLowerCase(), '<body>', 0) + 7, (strpos(res.toLowerCase(), '</body>', 0) - 1 - (strpos(res.toLowerCase(), '<body>', 0) + 7)));
		//$(document).html(res);
		//document.innerHTML = res;
		//document.documentElement.innerHTML = res;
		$(function(){

		for(var cur in critical_block_html_array){
			if($('div[criticalid="'+cur+'"]').length < 1) continue;
			$('div[criticalid="'+cur+'"]').html(critical_block_html_array[cur]);
		}

		});

		//location.replace(href);

		console.log('page loaded successfully');
	});
}
impulsgraw вне форума Ответить с цитированием
Старый 15.02.2013, 17:40   #2
impulsgraw
Верховный Судья
Пользователь
 
Аватар для impulsgraw
 
Регистрация: 23.11.2010
Сообщений: 82
По умолчанию

Неужели мне никто не поможет?
impulsgraw вне форума Ответить с цитированием
Старый 15.02.2013, 17:47   #3
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

в рейди и лоэд передаются анонимные функции, сделайте их не-анонимными и вызывайте при рейди/лоэд и при загрузке.
Alar, верни репу!
Naive вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Drupal 7 smigs HTML и CSS 1 08.08.2012 10:11
переключение checkbox'ов nervniy Общие вопросы Delphi 11 30.08.2011 09:36
Переключение активности RebOOter Общие вопросы Delphi 3 07.06.2011 18:08
Переключение звуковух ) Fragman Общие вопросы Delphi 5 28.08.2010 00:03
Переключение в TreeView Maxs Общие вопросы Delphi 5 03.06.2009 14:58