こんにちは、Drupal Web 開発者です。解決しなければならない問題がありますが、ajax ページのリロードを行ったことはありません。ページ ヘッドといくつかの div ブロックをリロードできません (それらiscritical="true"
とcriticalid="someidword"
タグを付けました)。そこで、次の JavaScript コードを書きました。
$(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;
}
そしてそれは動作します。ただし、ページ コンテンツがリロードされると、<head>
タグ内にある JavaScript コードは機能しません。偽の「ページの読み込みとウィンドウの読み込み」イベントを実行しようとしましたが、何も動作しません。このコードを完全に機能させるにはどうすればよいですか? おそらく、いくつかのモジュールを知っていますか?