0
嗨Drupal网站开发人员!我有一个问题,必须解决,但我从来没有使用过Ajax页面重新加载。页头不能重新加载和一些div块(我给他们iscritical="true"
和criticalid="someidword"
标签)。所以,我写了这个JavaScript代码:如何动态地使用ajax重新加载页面内容,而无需在Drupal上重新加载?
$(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)));
for(var cur in critical_block_html_array){
if($('div[criticalid="'+cur+'"]').length < 1) continue;
$('div[criticalid="'+cur+'"]').html(critical_block_html_array[cur]);
}
$(document).ready();
$(window).load();
console.log('page loaded successfully');
});
return false;
}
它的工作原理。但是,当网页内容变得重新加载,JavaScript的代码,这是<head>
标签内不工作,如果只是加载网页,他们必须是如何工作的。我尝试运行假的“页面加载和窗口加载”事件,但没有任何想要工作。我应该怎样做这个代码才能完美工作?可能是,你知道一些模块?