中国知网CNKI硕博论文PDF下载

添加知网文献PDF下载按钮/add PDF download button to CNKI.

目前为 2021-07-02 提交的版本。查看 最新版本

// ==UserScript==
// @name         中国知网CNKI硕博论文PDF下载
// @version      0.8.2
// @namespace    https://greasyfork.org/users/244539
// @icon         https://www.cnki.net/favicon.ico
// @description  添加知网文献PDF下载按钮/add PDF download button to CNKI.
// @author       leftjie
// @match        http*://*.cnki.net
// @match        http*://cdmd.cnki.com.cn/Article/CDMD-*
// @match        http*://*/kcms/detail/detail.aspx?*dbcode=*
// @match        http*://*/KCMS/detail/detail.aspx?*dbcode=*
// @match        http*://*/kns*/defaultresult/index*
// @match        http*://*/KNS8/AdvSearch?*
// @match        http*://*/kns/brief/*result*
// @run-at       document-idle
// @grant        unsafeWindow
// ==/UserScript==

//文献详情页面
var $ = unsafeWindow.jQuery;

(function() {
    'use strict';
        var url = window.location.href;
        if(url.indexOf('detail.aspx') != -1){
            var dllink = document.getElementsByClassName('operate-btn');
            var dl = "";
            for (var i = 0;i <= dllink.length; i++) {
                var nhdown = dllink[i].getElementsByTagName('a');
                if(url.indexOf('CMFD') != -1){
                    if (i == 0){
                        dl = nhdown[1].href.replace('dflag=nhdown','dflag=pdfdown').replace('dflag=cajdown','dflag=pdfdown');
                    }else{
                        dl = nhdown[0].href.replace('dflag=nhdown','dflag=pdfdown').replace('dflag=cajdown','dflag=pdfdown');
                    }
                }
                if(url.indexOf('CJFD') != -1 || url.indexOf('CDFD') != -1){
                    if (i == 0){
                        dl = nhdown[3].href;
                    }else{
                        dl = nhdown[2].href;
                    }
                }
                var li = document.createElement('li');
                var a = document.createElement('a');
                li.className = "btn-dlpdf";
                a.innerHTML = "<i></i>PDF 下载";
                a.href = dl;
                a.style.backgroundColor="#fb4376";
                li.appendChild(a);
                document.getElementsByClassName('operate-btn')[i].appendChild(li);
            }
       };
})();


//知网空间学位论文

(function() {
    var url = window.location.href;
    if(url.indexOf('cdmd.cnki.com.cn') != -1){
        var cnki_space_id = url.match(/-([0-9]+).htm/)[1];
        console.log(cnki_space_id);
        var ty_caj = document.getElementById("ty_caj");
        var newe = document.createElement("div");
        var newe_a = document.createElement('a');
        newe.className = "down_button";
        newe.id = "ty_pdf";
        newe_a.innerHTML = "PDF 下载(跳)";
        newe_a.href = "https://kns.cnki.net/kcms/detail/detail.aspx?dbcode=CMFD&dbname=CMFDTEMP&filename=" + cnki_space_id + ".nh";
        newe_a.target = "_blank";
        newe.appendChild(newe_a);
        document.getElementById("down_3").insertBefore(newe,ty_caj);
    }
})();


//搜索结果页面

(function() {
    function downloadFile(url) {
        window.open(url,'_blank')
      }
    var au = [];
    $(document).ajaxSuccess(function() {
        if (arguments[2].url.indexOf('/Brief/GetGridTableHtml') + 1) {
            $('.downloadlink').attr('href',function(){return this.href+"&dflag=pdfdown";});
            $("tr input[name='CookieName']").click(function(){
                var l = localStorage.getItem("FileNameS").split(",");
                var urls = [];
                if (l == ""){
                    urls = [];
                    au = [];
                }else{
                    $.each(l,function(index,val){
                        var u = $("input[value='"+ l[index] +"']").parent("td").parent("tr").find(".downloadlink")[0].href;
                        urls.push(u);
                    });
                }
                au = urls;
            })
            $(".toolbar").after(`<div class="toolbar-col"><ul class="diy-btn" id="">
                <li class="pdfvdownload"><a href="javascript:void(0)" id="dd">批量下载</a></li>
                  <li><div style="width: 58px;">
                        <input type="checkbox" name="switch_dl_type" id="switch_dl_type" checked class="diy-choose-btn" data-toggle="PDF|CAJ">
                        <label for="switch_dl_type" class="choose-label"></label>
                        <span class="choose-text"></span>
                    </div></li>
                </ul></div>`);

        };



        // 开关
        $(".diy-choose-btn").each(function(){
            var texts = $(this).attr('data-toggle').split('|');
            $(this).siblings('.choose-text').text(this.checked?texts[0]:texts[1]);
            $("#dd").text(this.checked?"批量下载"+texts[0]:"批量下载"+texts[1]);
        });
        $(".diy-choose-btn").off("change");
        $(".diy-choose-btn").on("change", function(){
            var texts = $(this).attr('data-toggle').split('|');
            $(this).siblings('.choose-text').text(this.checked?texts[0]:texts[1]);
            $("#dd").text(this.checked?"批量下载"+texts[0]:"批量下载"+texts[1]);
                if(this.checked){
                    $('.downloadlink').attr('href',function(){return this.href+"&dflag=pdfdown";});
                }else{
                    $('.downloadlink').attr('href',function(){return this.href.replace("&dflag=pdfdown","");});
                }
        });
    });
    $(document).on("click","#dd",function(){
        //console.log(au);
        if(au.length == 0){
            alert("未选择");
            return false;
        }
        for(var i=0;i<au.length;i++){
            downloadFile(au[i]);
        }
    })
    $(document).on("click","[href='javascript:$.filenameClear();']",function(){au = [];});


    function loadCss(code){
        var style = document.createElement('style');
        style.type = 'text/css';
        style.rel = 'stylesheet';
        style.appendChild(document.createTextNode(code));
        var head = document.getElementsByTagName('head')[0];
        head.appendChild(style);
    }

 $(".SavePoint").after(`<div class="toolbar-col"><ul class="diy-btn" id="">
                <li class="pdfvdownload"><a href="javascript:void(0)" id="dd">批量下载</a></li>
                  <li><div style="width: 58px;">
                        <input type="checkbox" name="switch_dl_type" id="switch_dl_type" checked class="diy-choose-btn" data-toggle="PDF|CAJ">
                        <label for="switch_dl_type" class="choose-label"></label>
                        <span class="choose-text"></span>
                    </div></li>
                </ul></div>`);
loadCss(`.diy-choose-btn { display: none; }
.choose-label { box-shadow: #b1b1b1 0px 0px 0px 1px; width: 30px; height: 16px; display: inline-block; border-radius: 16px; position: relative; background-color: #bdbdbd; overflow: hidden; margin: 0; margin-top: -3px; cursor: pointer; vertical-align: middle; }
.choose-label:before { content: ''; position: absolute; left: 0; width: 16px; height: 16px; display: inline-block; border-radius: 20px; background-color: #fff; z-index: 20; -webkit-transition: all 0.2s; transition: all 0.2s; }
.diy-choose-btn:checked + label.choose-label:before { left: 14px; }
.diy-choose-btn:checked + label.choose-label { background-color: #009cef; box-shadow: #009cef 0px 0px 0px 1px; }
.choose-text { display: inline-block; line-height: 20px; color: #888; font-size: 12px;}
.diy-btn {float:left;}
.diy-btn li {display:inline-block;line-height:30px;padding:0 6px;border:1px solid #eee;background-color:#fff;}`);

})();