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;
}

它有效。但是,当页面内容重新加载时,标签内的 JavaScript 代码<head>将无法工作,如果页面刚刚加载,它们必须如何工作。我尝试运行虚假的“页面加载和窗口加载”事件,但没有任何效果。我应该怎么做这个代码才能完美工作?可能是,你知道一些模块吗?

4

1 回答 1

0

也许这return false;是你的问题。并且您想在页面上的每个链接上触发事件!?

告诉我们您为什么需要这样的代码,我们会尽力提供帮助。

并且不要忘记为您的代码创建一个jsfiddle 。

于 2013-02-14T12:51:07.877 回答