久久精品国产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国产精品免费看_中文成人在线_日本在线播放视频_精品国产一区二区三区在线观看

    国产精品久久网| 欧美一区网站| 国内自拍一区| 欧美日韩免费观看一区三区| 亚洲视频专区在线| 亚洲欧洲视频在线| 国产亚洲欧美一区二区三区| 欧美日韩美女在线| 久久精品三级| 在线视频亚洲欧美| 亚洲激情欧美激情| 国产字幕视频一区二区| 国产精品免费福利| 国产精品久久久久国产a级| 欧美成人伊人久久综合网| 欧美一区午夜精品| 午夜精品久久久久久久99樱桃 | 一本到高清视频免费精品| 在线精品国产欧美| 伊人久久婷婷色综合98网| 国产精品久久久久毛片软件| 欧美久久成人| 国产夜色精品一区二区av| 亚洲一区二区三区四区中文| 国产亚洲精品自拍| 国产精品国产福利国产秒拍| 久久精品视频在线观看| 日韩视频三区| 亚洲理论在线观看| 亚洲精品中文字幕女同| 国产欧美日韩一区二区三区| 欧美精品日韩综合在线| 久久久久欧美精品| 欧美专区日韩视频| 一本色道久久88综合亚洲精品ⅰ | 欧美在线1区| 国产精品自在线| 激情综合自拍| 国产精品久久久久高潮| 久久精品亚洲| 中文在线一区| 亚洲精品视频一区| 夜夜嗨一区二区| 另类av导航| 99视频精品在线| 伊人久久亚洲热| 国产精品久久久久免费a∨| 欧美日韩免费| 国产一区二区黄色| 亚洲国产三级网| 一区二区三区视频观看| 亚洲欧美中文日韩v在线观看| 午夜精品美女久久久久av福利| 羞羞漫画18久久大片| 久久久亚洲高清| 中文在线不卡| 免费看成人av| 国产精品久久久久久久7电影| 韩日欧美一区二区| 亚洲欧美999| 免费视频亚洲| 国产在线国偷精品产拍免费yy| 国产偷国产偷亚洲高清97cao| 国产精品久久国产精麻豆99网站| 在线观看亚洲精品| 久久久久国产免费免费| 亚洲男人天堂2024| 亚洲视频中文| 麻豆成人91精品二区三区| 国产精品久久久久99| 在线免费不卡视频| 亚洲欧美视频一区二区三区| 美女诱惑一区| 国产一区白浆| 午夜电影亚洲| 欧美午夜欧美| 亚洲国产日韩欧美一区二区三区| 亚洲免费在线电影| 欧美日韩福利在线观看| 欲色影视综合吧| 性欧美1819性猛交| 国产精品青草综合久久久久99| 亚洲黄色成人久久久| 久久精品官网| 国产欧美视频一区二区| 制服丝袜激情欧洲亚洲| 欧美国产日韩免费| 在线电影国产精品| 久久婷婷国产麻豆91天堂| 国产精品亚洲视频| 亚洲欧美资源在线| 国产精品国产馆在线真实露脸| 亚洲精品九九| 欧美日韩国产bt| 亚洲日本成人女熟在线观看| 久久综合久久88| 好吊视频一区二区三区四区 | 国产精品都在这里| 亚洲美女少妇无套啪啪呻吟| 欧美激情一区二区三区四区| 国产主播精品在线| 久久精品日产第一区二区三区 | 欧美激情自拍| 亚洲精品乱码久久久久久蜜桃91| 嫩草影视亚洲| 亚洲日本在线观看| 欧美香蕉大胸在线视频观看| 一本色道精品久久一区二区三区 | 一区二区福利| 国产精品高潮久久| 欧美一区91| 在线观看视频一区二区| 葵司免费一区二区三区四区五区| 国产精品综合av一区二区国产馆| 毛片基地黄久久久久久天堂| 中文日韩在线视频| 亚洲欧洲精品一区二区三区 | 欧美人与性动交α欧美精品济南到| 亚洲一级在线观看| 正在播放亚洲| 新狼窝色av性久久久久久| 亚洲综合不卡| 午夜精品久久久久影视| 亚洲欧美日韩综合一区| 亚洲一区在线免费| 久久国产精品一区二区三区四区| 欧美怡红院视频一区二区三区| 中国亚洲黄色| 亚洲影音一区| 欧美日韩国产丝袜另类| 国产一区二区三区视频在线观看 | 蜜桃av一区二区三区| 亚洲欧美日韩网| 欧美日韩视频在线观看一区二区三区 | 久久午夜精品一区二区| 尤妮丝一区二区裸体视频| 欧美国产精品v| 欧美影院在线播放| 在线成人中文字幕| 欧美美女操人视频| 久久精品国产免费| 99re66热这里只有精品4| 国产亚洲日本欧美韩国| 欧美日本免费| 狂野欧美性猛交xxxx巴西| 亚洲欧美激情诱惑| 99国内精品| 亚洲黄色有码视频| 国产日韩欧美综合精品| 欧美视频中文在线看| 另类天堂av| 久久精品夜色噜噜亚洲a∨| av成人福利| 亚洲激情av在线| 精品二区久久| 国产小视频国产精品| 国产精品多人| 欧美小视频在线| 欧美日韩国产一中文字不卡| 欧美成人精品在线视频| 美女视频黄a大片欧美| 久久国产精品久久国产精品| 欧美一级日韩一级| 亚洲欧美日韩一区二区在线| 9人人澡人人爽人人精品| 亚洲欧洲精品一区二区三区不卡| 一区视频在线播放| 亚洲黄色av| 亚洲人成7777| 一区二区三区国产精华| 亚洲午夜女主播在线直播| 亚洲一线二线三线久久久| 亚洲欧美日本国产专区一区| 香蕉成人久久| 久久国产日韩欧美| 美女日韩欧美| 欧美日一区二区三区在线观看国产免| 欧美日韩成人| 国产精品久久久久久久久免费桃花| 欧美性猛交99久久久久99按摩| 国产精品看片资源| 狠狠色丁香久久婷婷综合丁香| 国产亚洲精品一区二区| 一色屋精品视频免费看| 亚洲人成在线观看网站高清| 一区二区三区成人| 欧美中文在线观看| 欧美多人爱爱视频网站| 欧美色中文字幕| 国产专区欧美精品| 亚洲精品乱码久久久久久| av成人免费| 久久九九国产| 欧美日韩精品欧美日韩精品| 国产精品亚洲欧美| 亚洲人成精品久久久久| 午夜精品久久久久久久99水蜜桃 | 欧美激情第9页| 国产精品入口尤物| 亚洲国产天堂久久综合|