0

こんにちは、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 コードは機能しません。偽の「ページの読み込みとウィンドウの読み込み」イベントを実行しようとしましたが、何も動作しません。このコードを完全に機能させるにはどうすればよいですか? おそらく、いくつかのモジュールを知っていますか?

4

1 に答える 1

0

多分それreturn false;はあなたの問題です。そして、ページ上のすべてのリンクでイベントを発生させたい!?

このようなコードが必要な理由を教えてください。

そして、コードにjsfiddleを作成することを忘れないでください。

于 2013-02-14T12:51:07.877 に答える