// ==UserScript== // @name 百度文库打印 // @namespace http://tampermonkey.net/ // @require http://code.jquery.com/jquery-3.3.1.min.js // @require https://cdn.bootcss.com/jQuery.print/1.6.0/jQuery.print.min.js // @version 0.1 // @description go print // @author You // @match http://wenku.baidu.com/* // @match https://wenku.baidu.com/* // @grant none // @note 1.点击 prepare print 按钮之后,除文档内容之外的其余元素会移除, // @note 2.用户需要手动将滚动条从上往下缓慢拖动,保证每一个单页都加载完成(bd使用ajax动态生成的页面),文档下会新建一个id为myprint的div来保存已加载的页面 // @note 3.点击print按钮弹出打印对话框,用户最好自己调整一下页面边距,缩放,使打印效果达到最好,此时打印的是"myprint" div // @note 4.点击取消,然后右键打印,可以打印当前网页,此时打印的是document // @note 现在还不是很好用,持续改进 // @downloadURL none // ==/UserScript== $(document).ready(function(){ 'use strict'; var content = document.getElementById('reader-container-inner-1'); let para = document.createElement("div"); para.innerHTML = '
prepare print
'; document.body.appendChild(para); document.getElementById("ddd").onclick = function() { //删除兄弟节点,删除父节点的兄弟节点 removeBrother(content); //点击全屏按钮 //document.getElementsByClassName('top-right-fullScreen')[0].click(); //去掉浮动导航栏 document.getElementsByClassName('fix-searchbar-wrap')[0].remove(); //显示所有页 $('.moreBtn').click(); remove('wk-other-new-cntent'); $('reader-container-inner-1').scrollTop(); createPrintDom(); let page = getPageCount(); let pageHight = 1343.66; window.onscroll = function doCopy(){ for(let i = 1; i< page+1;i++){ let pageClsName = 'reader-page-'+i; //页面内容是否为空 let contentPage = $('#reader-container-inner-1>.'+pageClsName+'>.inner>.bd').html(); if(contentPage != '' ){ //查找目标地方是否为空 let target = $('#myprint>.'+pageClsName+'>.inner>.bd') if(target[0]==undefined || target[0] == null){ //创建节点,并填内容 $('#myprint').append($('#reader-container-inner-1>.'+pageClsName).prop("outerHTML")); }else{ //更新内容 target.html($('#reader-container-inner-1>.'+pageClsName+'>.inner>.bd').html()); } } //$("div").scrollTop(pageHight*i); } } let para = document.createElement("div"); para.innerHTML = '
print
'; document.body.appendChild(para); document.getElementById("hideOrg").onclick = function() { $('#reader-container-inner-1>').hide(); $('#myprint').print(); } //doCopy(); //$('#myprint').print(); //$("#reader-container-inner-1").scroll(doCopy); }; function removeBrother(elm) { if (elm === null || elm.parentNode === null || elm === document.body) { return; } var p = elm.parentNode.children; for (var i = 0, pl = p.length; i < pl; i++) { if(p[i] !== elm && p[i].tagName.toLowerCase() !== "script"){ p[i].innerHTML = ""; } } removeBrother(elm.parentNode); } function getPageCount(){ return $('#reader-container-inner-1>.reader-page').length; } function createPrintDom(){ $('#reader-container-inner-1').after('
'); } function remove(className){ var items = document.getElementsByClassName(className); if(items != null && items.length >0){ var item = items[0]; if(item != null ) { item.remove(); } } } });