久久精品国产99国产精品免费看_中文成人在线_日本在线播放视频_精品国产一区二区三区在线观看

WordPress全站PJAX代碼 - wordpress開發

INLOJV封裝的自用WordPress全站PJAX代碼。包括最簡單的評論ajax,更快速的前進后退功能

羊年起不再折騰WordPress了,可以看到本站近期文章不存在什么wordpress關鍵字,也因為老有人跑來加Q問我這個東西怎么搞,所以本人就封裝了這個,不僅僅是頁面pjax。其實網上教程有很多了,但不是全站的,搜索、評論等還要另外寫,下面這個就不必了,包括最簡單的評論ajax,更快速的前進后退功能。本篇是wp相關的最后一篇文章。

首先請看本站PJAX教程

注:代碼極不規范(我本來就不是專業的),喜歡就拿去吧,不過若要轉載就請保留本站一個鏈接。

特別建議:有一定js基礎的朋友使用,能自己優化就自己優化,沒接觸過的還是別折騰了,不會則自行百度,下面的注釋都是我當初一句句百度折騰學習jq才加上去的。

//————————————————————————————————————
//  Packaged PJAX By INLOJV 2015.01.09
//  頁面、搜索、評論、評論分頁 PJAX
//————————————————————————————————————

// ——————————————————————— AJAX-評論、搜索、分頁 等
var ajx_main = '#main' , // 要替換的主體id,改為你文章部分的容器
ajx_a = 'a' , // a標簽,自己添加排除規則
ajx_comt = 'comments' , // 整個評論區的id ,不加#
ajx_submit_form = '#comment_form' , // 提交按鈕所在的表單
ajx_comtlist = '.comment-list' , // 評論列表id或class
ajx_comtpagenav = '.pagenav' , // 評論分頁導航的id或class
ajx_comtpagenav_a = '.pagenav a' , // 評論分頁導航的a標簽
ajx_sform = '.inlo-search form' , // 搜索表單form標簽
ajx_skey = '.s-key' ; // 搜索表單input標簽內的id或class
function reload_func(){
    // 這里放置需要重載的JS或函數
}


$(function() {    
    a(); //pushState初始化執行一次
});
// 建立錨點函數,用于跳轉后的滾動定位,使用這個主要是有側欄評論帶#號時能在請求后定位到該條評論的位置
function body_am(id) { 
    id = isNaN(id) ? $('#' + id).offset().top : id;
    $("body,html").animate({
        scrollTop: id
    }, 0);
    return false;
}
function to_am(url) { 
    var anchor = location.hash.indexOf('#'); // 用indexOf檢查location.href中是否含有'#'號,如果沒有則返回值為-1
    anchor = window.location.hash.substring(anchor + 1);
    body_am(anchor);
}
// 主頁地址,用于下面的提交函數
var home_url = document.location.href.match(/http:\/\/([^\/]+)\//i)[0]; 
// 函數: 替換url,用于評論ajax提交
function replaceUrl(url, domain) {
    return url.replace(/http:\/\/([^\/]+)\//i, domain);
}
// 函數:從封裝的Json獲取
function getFormJson(frm) {
    var o = {};
    var a = $(frm).serializeArray();
    $.each(a,
        function() {
        if (o[this.name] !== undefined) {
            if (!o[this.name].push) {
                o[this.name] = [o[this.name]];
            }
            o[this.name].push(this.value || '');
        } else {
            o[this.name] = this.value || '';
        }
        });
    return o;
}
// 函數:更新瀏覽器歷史緩存(用于瀏覽器后退)
function l(){
    history.replaceState( // 刷新歷史點保存的數據,給state填入正確的內容
    {    url: window.document.location.href,
        title: window.document.title,
        html: $(document).find(ajx_main).html(), // 抓取主體部分outerHTML用于呈現新的主體。也可以用這句 html: $(ajx_main).prop('outerHTML'),
    }, window.document.title, document.location.href);
}
// 函數:頁面載入初始一次,解決Chrome瀏覽器初始載入時產生ajax效果的問題,并且監聽前進后退事件
function a(){
    window.addEventListener( 'popstate', function( e ){  //監聽瀏覽器后退事件
        if( e.state ){
            document.title = e.state.title;
            $(ajx_main).html( e.state.html ); //也可以用replaceWith ,最后這個html就是上面替換State后里面的html值                
            // 重載js
            window.load =  reload_func(); // 重載函數
        }
    });    
}
//函數:AJAX核心
function ajax(reqUrl, msg, method, data) {
    if (msg == 'pagelink' || msg == 'search') { // 頁面、搜索
        $(ajx_main).fadeTo('slow',0.6); 
    } else if ( msg == 'comment' ){ // 評論提交    
        $('#' + ajx_comt).fadeTo('slow',0.5); 
    } else if ( msg == 'comtpagenav' ){ //  評論分頁時
        $(ajx_comtlist).fadeTo('slow',0.5);
        $(ajx_comtpagenav).fadeTo('slow',0.8);
    }
    $.ajax({
        url: reqUrl, 
        type: method,
        data: data,
        beforeSend : function () { //加載前操作 這個必須放在window.history.pushState()之前,否則會出現邏輯錯誤。                
            l(); //刷新歷史點內容,這個必須放在window.history.pushState()之前,否則會出現邏輯錯誤。
        },
        success: function(data) {
            if (msg == 'pagelink' || msg == 'search') { // 又如果msg為 頁面 或 搜索—— 【1】
                $(ajx_main).html($(data).find(ajx_main).html()) ; // 替換原#main的內容
                $(ajx_main).fadeTo('normal',1);
            } else if (msg == 'comment') { // 又如果msg為 評論回復——————————【2】 
                $('#' + ajx_comt).html($(data).find('#' + ajx_comt).html());//  評論列表滑出
                $('#' + ajx_comt).fadeTo('normal',1); 
                $("body,html").animate({scrollTop:$('#'+ajx_comt).offset().top}, 900); // 定位返回評論ID頂部
            } else if (msg == 'comtpagenav') { // 又如果msg為 評論分頁——【3】
                var content = $(data).find(ajx_main).html();
                var pagedstring = $(data).find(ajx_comtpagenav).html();
                $(ajx_main).html(content);
                $(ajx_comtpagenav).html(pagedstring);
                $(ajx_comtlist).fadeTo('normal',1); // 評論列表顯示
                $(ajx_comtpagenav).fadeTo('normal',1); // 評論分頁顯示
                $("body,html").animate({scrollTop:$(ajx_comtlist).offset().top}, 600); 
            }
            document.title = $(data).filter("title").text(); // 瀏覽器標題變更
            if (msg != 'comment') { // —— 不為后退 也 不為評論回復時
                var state = { // 設置state參數
                    url: reqUrl,
                    title: $(data).filter("title").text(),
                    html: $(data).find(ajx_main).html(),
                };
                // 將當前url和歷史url添加到瀏覽器當中,用于后退。里面三個值分別是: state, title, url
                window.history.pushState(state, $(data).filter("title").text(), reqUrl);
            }
        },
        complete: function() { // ajax完成后加載
            // 代碼重載區
            if (msg == 'pagelink') { // 若msg為 頁面鏈接
                to_am(reqUrl) ;// 定位到相應鏈接位置,這個必須放在window.history...之后執行,否則遇到帶#號的鏈接,再點擊其他鏈接地址欄就無法改變
            } 
            window.load =  reload_func(); // 重載函數
        },
        timeout: 5000, // 超時長度        
        error: function(request) { // 錯誤時的處理
            if (msg == msg == 'pagelink' || msg == 'search'){
                location.href = reqUrl;    //直接刷新跳轉到請求的頁面鏈接
            } else if (msg == 'comment') { // 若msg為評論回復
                alert($(request.responseText).filter("p").text()); // 彈出警告,這個是必需的,如果刪除那么提交錯誤時就會打開空白頁面
                $('#' + ajx_comt).fadeTo('normal',1); 
            } else if ( msg == 'comtpagenav' ) {
                $(ajx_comtlist).fadeTo('normal',1); // 警告后評論區顯示
                $(ajx_comtpagenav).fadeTo('normal',1); // 警告后評論區顯示
            } else {
                location.href = reqUrl; //頁面錯誤時跳轉到請求的頁面
            }
        },
    });
}
//頁面ajax
$('body').on("click",ajx_a,
function() {
    ajax($(this).attr("href"), 'pagelink');
    return false;
});
//評論ajax
$('body').on('submit',ajx_submit_form, 
function() {
    ajax(replaceUrl(this.action, home_url), 'comment', 'POST', getFormJson(this));
    return false;
});
//搜索ajax
$('body').on('submit',ajx_sform, 
function() {
    ajax(this.action + '?s=' + $(this).find(ajx_skey).val(), 'search'); 
    return false;
});
//評論分頁ajax
$('body').on("click",ajx_comtpagenav_a,
function() {
    ajax($(this).attr("href"), 'comtpagenav');
    return false;
});

給TA贊賞
共{{data.count}}人
人已贊賞
??
Npcink上的部份代碼及教程來源于互聯網,僅供網友學習交流,若您喜歡本文可附上原文鏈接隨意轉載。
無意侵害您的權益,請發送郵件至 1355471563#qq.com 或點擊右側 私信:Muze 反饋,我們將盡快處理。
?
購物車
優惠劵
搜索
久久精品国产99国产精品免费看_中文成人在线_日本在线播放视频_精品国产一区二区三区在线观看

    9000px;">

      一区二区三区在线影院| 国产日韩成人精品| 另类小说图片综合网| 欧洲精品一区二区| 久久久久久夜精品精品免费| 午夜伊人狠狠久久| 欧美日高清视频| 精品一区二区国语对白| 国产欧美日产一区| 欧美亚洲综合一区| 亚洲v精品v日韩v欧美v专区| 制服丝袜中文字幕一区| 国产激情一区二区三区| 一区二区三区免费观看| 精品国精品国产| 91蜜桃在线免费视频| 日韩精品国产精品| 99国产欧美另类久久久精品| 国产麻豆精品久久一二三| 91精品国产91热久久久做人人| 日本少妇一区二区| 国产精品你懂的在线欣赏| 91成人在线精品| 国产一区不卡在线| 亚洲一卡二卡三卡四卡无卡久久| 日韩一区和二区| caoporn国产一区二区| 日本欧美在线观看| 综合激情网...| 久久久久久久电影| 精品人伦一区二区色婷婷| 色呦呦网站一区| 国产91高潮流白浆在线麻豆| 性久久久久久久| 精品播放一区二区| av成人免费在线| 午夜久久久久久久久久一区二区| 欧美在线高清视频| 国产一区二区三区免费播放| 亚洲激情校园春色| 国产精品久久久久aaaa樱花| 欧美大尺度电影在线| 欧美群妇大交群中文字幕| 91蜜桃视频在线| 99久久国产综合精品女不卡| 国产精品正在播放| 美女视频一区在线观看| 亚洲一区二区三区爽爽爽爽爽| 国产精品国产自产拍高清av| 国产欧美一区二区在线观看| 久久精品视频免费观看| 久久精品一二三| 国产欧美一区二区三区在线看蜜臀 | 国产精品欧美久久久久无广告| 欧美一区二区三区影视| 3d成人h动漫网站入口| 欧美精品日韩一区| 欧美一区二区性放荡片| 日韩免费成人网| 26uuu精品一区二区在线观看| 久久亚洲影视婷婷| 国产亚洲一区字幕| 国产精品久久久久久久浪潮网站 | 亚洲欧美激情小说另类| 日韩伦理电影网| 亚洲午夜一区二区三区| 日韩影院精彩在线| 国内精品伊人久久久久av影院| 国产精品影视在线观看| 91在线观看视频| 91精品国产全国免费观看| 欧美xfplay| 亚洲欧美综合网| 亚洲午夜一区二区| 国产综合色视频| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 欧美极品xxx| 一区二区三区影院| 经典三级视频一区| k8久久久一区二区三区| 欧美精品乱码久久久久久按摩| 欧美不卡激情三级在线观看| 亚洲欧洲性图库| 日本在线不卡一区| 成人激情电影免费在线观看| 欧美日韩精品一区二区天天拍小说| 日韩女优电影在线观看| 中文字幕的久久| 免费看精品久久片| 99久久精品免费| 日韩精品在线看片z| 亚洲精品乱码久久久久久日本蜜臀| 久久成人免费电影| 色哟哟在线观看一区二区三区| 日韩免费看的电影| 亚洲国产精品麻豆| 国产91精品在线观看| 欧美一区二区三区免费大片| 中文字幕亚洲视频| 久久97超碰国产精品超碰| 91视频91自| 久久亚洲一区二区三区四区| 日韩电影在线免费| 91视频精品在这里| 国产日产精品1区| 久久97超碰色| 欧美一区二区三区不卡| 亚洲高清免费观看高清完整版在线观看| 国产精品一区二区三区四区 | 日本不卡1234视频| 91在线丨porny丨国产| 国内精品视频一区二区三区八戒| 欧美变态凌虐bdsm| 欧美日韩一区不卡| 17c精品麻豆一区二区免费| 日韩成人午夜电影| 美国一区二区三区在线播放| 欧美中文字幕一区二区三区| 久久亚区不卡日本| 六月婷婷色综合| 欧美午夜精品一区| 欧美在线一区二区三区| 午夜视频久久久久久| 国产色一区二区| 亚洲成人激情社区| 国产成人在线观看免费网站| 精品久久久久99| 国产成人精品一区二区三区四区 | 欧美日韩二区三区| 一区二区三区欧美亚洲| 亚洲美女区一区| 一区二区三区在线视频免费| 蜜桃一区二区三区四区| 欧美亚洲国产一区二区三区| 亚洲伦在线观看| 91久久精品一区二区三区| 亚洲嫩草精品久久| 欧美视频一区二区| 毛片一区二区三区| 国产日韩综合av| 99riav久久精品riav| 91麻豆成人久久精品二区三区| 亚洲欧美激情一区二区| 精品视频一区三区九区| 青青青伊人色综合久久| 日韩欧美二区三区| 国产成人亚洲精品青草天美| 国产精品久久三区| 色视频成人在线观看免| 午夜婷婷国产麻豆精品| 国产亚洲1区2区3区| 色婷婷av一区二区三区gif| 天堂成人国产精品一区| 久久老女人爱爱| 色综合久久88色综合天天| 美女视频一区在线观看| 国产精品免费免费| 欧美一区二区私人影院日本| 国产精品小仙女| 亚洲永久免费视频| 26uuu另类欧美| 欧美日韩在线三区| 国产精品99久| 亚洲va国产va欧美va观看| 精品久久久久久综合日本欧美| 99久久精品费精品国产一区二区| 日本不卡一二三区黄网| 亚洲视频一区在线| 26uuu久久综合| 欧美麻豆精品久久久久久| av电影在线观看一区| 韩日精品视频一区| 天堂影院一区二区| 亚洲色图视频免费播放| 精品国产3级a| 欧美精品丝袜久久久中文字幕| 成人激情综合网站| 日韩欧美国产wwwww| 国产精品免费视频网站| 久久先锋影音av鲁色资源网| 精品国产91久久久久久久妲己| 亚洲欧美在线高清| 高清国产一区二区三区| 在线精品亚洲一区二区不卡| 国产欧美视频一区二区| 韩国在线一区二区| 久久品道一品道久久精品| 日韩在线播放一区二区| 欧美一区二区三区在线看| 成人高清视频在线观看| 国产女人18水真多18精品一级做| 波多野结衣91| 国内成+人亚洲+欧美+综合在线| 天天影视网天天综合色在线播放| 亚洲色图欧洲色图| 欧美韩国日本综合| 国产亚洲欧美色| 久久精品一区蜜桃臀影院| 久久综合丝袜日本网| 久久久久久免费网|