[技术讨论] 解决百度云的相关问题(面向新手)(不会翻墙的朋友自动跳过就行)

发表于 2016-7-28 13:36:26 | 查看: 7899| 回复: 20

【1】如何解决百度云大文件下载不了


          首先你需要google浏览器,然后在chrome网上应用店安装一个叫做tampermonkey的扩展程序(记住是扩展程序,不是应用)然后你的右上角会出现一个这样一个图标,左键它,然后点击‘添加新脚本’,再把代码全部删除,输入以下代码:

  1. // ==UserScript==
  2. // @name         解决百度云大文件下载限制
  3. // @namespace    undefined
  4. // @version      0.0.3
  5. // @description  一行代码,解决百度云大文件下载限制
  6. // @author       funianwuxin
  7. // @match        http://pan.baidu.com/*
  8. // @match        https://pan.baidu.com/*
  9. // @match        http://yun.baidu.com/*
  10. // @match        https://yun.baidu.com/*
  11. // @run-at       document-start
  12. // [url=home.php?mod=space&uid=13442]@Grant[/url]        none
  13. // ==/UserScript==
  14. /* jshint -W097 */
  15. 'use strict';
  16. Object.defineProperty(navigator,"platform",{value:"sb_baidu",writable:false,configurable:false,enumerable:true});

  17. (function(){
  18. var href=location.href;
  19. /http:/.test(href)?location.href='https'+href.slice(4):0;
  20. }());

  21.    
复制代码
然后你在百度云网页版上就可以直接下载了



【2】如何搜索百度云资源

  相信大家都知道百度云资源很多,但是我们在百度云网盘上只能搜索到自己的资源,于是我借鉴了其他大神编写的代码成功解决了此问题

同样在tampermonkey里面添加一个新脚本,代码如下,稍微有点长:

  1. // ==UserScript==
  2. // @name       百度云插件+APIKey
  3. // @namespace  
  4. // @version    4.5.0.1 beta
  5. // @description  在百度云网盘的页面添加一个搜索框,调用搜索API搜索所有公开分享文件// To add a search frame that calls some api for searching some public shared files in BaiduYun cloud netdisk.
  6. // @require        http://code.jquery.com/jquery-2.1.1.min.js
  7. // @description  For more imformation,please email me at [email protected].
  8. // @include       http://pan.baidu.com/disk/*
  9. // @include      https://pan.baidu.com/disk/*
  10. // @include      https://yun.baidu.com/#from=share_yun_logo/
  11. // @include      http://yun.baidu.com/#from=share_yun_logo/
  12. // @grant       GM_xmlhttpRequest
  13. // @run-at document-end
  14. // @copyright  2014,04,20 __By Wang Hsin-che   
  15. // ==/UserScript==

  16. /*thanks to the tutorial of mvc  at
  17. https://alexatnet.com/articles/model-view-controller-mvc-javascript*/


  18. //Event is a simple class for implementing the Observer pattern:
  19. function Event(sender) {
  20.     this._sender = sender;
  21.     this._listeners = [];
  22. }

  23. Event.prototype = {
  24.     attach : function (listener) {//push the callback function into _listeners[];
  25.         this._listeners.push(listener);
  26.     },
  27.     notify : function (args) {//pop all the callback functions and execute the functions with same args?
  28.         var index;

  29.         for (index = 0; index < this._listeners.length; index += 1) {
  30.             this._listeners[index](this._sender, args);//auto pass sender and args into callback function, so the default form of callback function is function(sender,args){}
  31.         }
  32.     }
  33. };

  34. //Javascript-template-engine-in-just-20-line
  35. //by by Krasimir http://krasimirtsonev.com/blog/article/Javascript-template-engine-in-just-20-line
  36. var TemplateEngine = function(html, options) {
  37.     var re = /<%([^%>]+)?%>/g, reExp = /(^( )?(if|for|else|switch|case|break|{|}))(.*)?/g, code = 'var r=[];\n', cursor = 0, match;
  38.     var add = function(line, js) {
  39.         js? (code += line.match(reExp) ? line + '\n' : 'r.push(' + line + ');\n') :
  40.             (code += line != '' ? 'r.push("' + line.replace(/"/g, '\\"') + '");\n' : '');
  41.         return add;
  42.     };
  43.     while(match = re.exec(html)) {
  44.         add(html.slice(cursor, match.index))(match[1], true);
  45.         cursor = match.index + match[0].length;
  46.     }
  47.     add(html.substr(cursor, html.length - cursor));
  48.     code += 'return r.join("");';
  49.     return new Function(code.replace(/[\r\t\n]/g, '')).apply(options);
  50. };

  51. //////////////////////////////////////////////////////////////////////
  52. /////jQuery draggable plugin v0.2 by Wang Hsin-che @ 2014 08///////////////
  53. /////usage: $(selector).draggable({handel:'handle',msg:{},callfunction:function(){}});
  54. //////////////////////////////////////////////////////////////////////
  55. (function($) {
  56.     $.fn.draggable = function(options) {
  57.         var settings = $.extend({
  58.             handle: undefined,
  59.             msg: {},
  60.             callfunction: function() {}
  61.         }, options);
  62.         var _eleFunc = function() {
  63.             var x0, y0,
  64.                 ele = $(this),
  65.                 handle;
  66.             handle = (settings.handle === undefined ? ele : ele.find(settings.handle).eq(0) === undefined ? ele : ele.find(settings.handle).eq(0));
  67.             ele.css({
  68.                 position: "absolute"
  69.             }); //make sure that the "postion" is "absolute"
  70.             handle.bind('mousedown', function(e0) {
  71.                 handle.css({
  72.                     cursor: "move"
  73.                 }); //set the appearance of cursor
  74.                 x0 = ele.offset().left - e0.pageX; //*1
  75.                 y0 = ele.offset().top - e0.pageY; //*1
  76.                 $(document).bind('mousemove', function(e1) { //bind the mousemove event, caution:this event must be bind to "document"
  77.                     ele.css({
  78.                         left: x0 + e1.pageX,
  79.                         top: y0 + e1.pageY
  80.                     }); //this expression and the expression of *1 equal to "ele.origin_offset+mouse.current_offset-mouse.origin_offset"
  81.                 });
  82.                 $(document).one('mouseup', settings.msg, function(e) { //when the mouse up,unbind the mousemove event,bind only once
  83.                     settings.callfunction(e); //callback function
  84.                     $(document).unbind('mousemove');
  85.                     handle.css({
  86.                         cursor: "auto"
  87.                     });
  88.                 });
  89.             });

  90.             // 從這裡開始
  91.         };
  92.         return this.each(_eleFunc);
  93.     };
  94. })(jQuery);
  95. /////////////////////////////////////////////////////////////////////////////////////////////////////////////
  96. //////



  97. /**
  98. * The Model. Model stores items and notifies
  99. * observers about changes.
  100. */

  101. var BaseModel=function(engineLst){
  102.     this.keyword="";
  103.     this.engine="default";
  104.     this.engineLst=engineLst;
  105.     this.jsonObj={
  106.                     cursor: {
  107.                         estimatedResultCount: 0,
  108.                         resultCount: 0 },
  109.                     results: []
  110.                 };
  111.     this.curr=1;
  112.     this.totalPage=1;
  113.     this.urls={default:'http://',};
  114.     this.state=false;
  115.     this.contentUpdated=new Event(this);
  116.     this.requestEvent=new Event(this);
  117. };
  118. BaseModel.prototype={
  119.     setEngine:function(engine){
  120.         this.engine=engine;
  121.     },
  122.     updateCurr:function(curr){
  123.         this.curr=curr;
  124.     },
  125.     updateKeyword:function(keyword){
  126.         this.keyword=keyword;
  127.     },
  128.     request:function(){
  129.         this.requestEvent.notify();
  130.         var _this=this;
  131.         GM_xmlhttpRequest({
  132.                     method: "GET",
  133.                     url: _this.compileUrl[_this.engine](_this),
  134.                     headers: {
  135.                         "User-Agent": "Mozilla/5.0", // If not specified, navigator.userAgent will be used.
  136.                         "Accept": "text/xml" // If not specified, browser defaults will be used.
  137.                     },
  138.                     onload: function(response) {
  139.                         _this.jsonObj=_this.toJson[_this.engine](response.responseText);
  140.                         _this.totalPage=(parseInt(_this.jsonObj.cursor.resultCount)-parseInt(_this.jsonObj.cursor.resultCount)%10)/10+1;
  141.                         _this.state=true;
  142.                         var _self=_this;
  143.                         _this.contentUpdated.notify(_self.state);                  
  144.                     },
  145.                     onerror: function() {
  146.                         _this.jsonObj={
  147.                                             cursor: {
  148.                                                 estimatedResultCount: 0,
  149.                                                 resultCount: 0 },
  150.                                             results: []
  151.                                         };
  152.                         _this.totalPage=1;
  153.                         _this.state=false;
  154.                         var _self=_this;
  155.                         _this.contentUpdated.notify(_self.state);           
  156.                     }
  157.                 });
  158.     },
  159.     destory:function(){
  160.         this.jsonObj={};
  161.         this.totalPage=0;
  162.         this.state=false;
  163.         this.curr=0;
  164.         this.keyword="";
  165.     },
  166.     toJson:{
  167.         default:function(text){
  168.             var jsonObj = {
  169.                     cursor: {
  170.                         estimatedResultCount: 0,
  171.                         resultCount: 0 },
  172.                     results: []
  173.                 };

  174.             return jsonObj;
  175.         },
  176.     },
  177.     compileUrl:{
  178.         default:function(_this){
  179.                 return _this.url + _this.keyword + '+site%3Apan.baidu.com' + '&first=' + _this.curr;
  180.             },        
  181.     },
  182. };

  183. var Viewer=function(model,UIelements){
  184.     this.model=model;
  185.     this.UI=UIelements;
  186.     this.searchClick=new Event(this);
  187.     this.closeClick=new Event(this);
  188.     this.nextClick=new Event(this);
  189.     this.preClick=new Event(this);
  190.     this.toPageClick=new Event(this);
  191.     this.engineOptChange=new Event(this);

  192.     var _self=this;
  193.     this.UI.searchBtn.click(function(event) {
  194.         /* Act on the event */
  195.         var curr=1;
  196.         var keyword=_self.UI.inputEle.val();
  197.         if(keyword.replace(/\s*/,'')!==''){
  198.             _self.searchClick.notify({curr:curr,keyword:keyword});
  199.         }
  200.     });
  201.     this.UI.closeBtn.click(function(event) {
  202.         /* Act on the event */
  203.         _self.closeClick.notify();
  204.     });
  205.     this.UI.inputEle.keyup(function(event) {
  206.             if (event.which == 13) {
  207.                 _self.UI.searchBtn.trigger('click');
  208.             }
  209.         });
  210.     $('body').on('click',this.UI.engineBtn.selector,function(){
  211.         var engine=$(this).data('engine');
  212.         _self.engineOptChange.notify(engine);
  213.     });
  214.     $('body').on('click',this.UI.toPageBtn.selector,function(){
  215.         var page=$(this).data('page');
  216.         _self.toPageClick.notify(page);
  217.     });

  218.     this.UI.myDiv.draggable({
  219.         handle: "#wxz_myDiv_title"
  220.     });

  221.                   
  222. };
  223. Viewer.prototype={
  224.     refleshEngineLst:function(){
  225.         var template='<%for(var i in this){%>'+
  226.                     '<span node-type="click-ele" data-engine="<%this[i]%>" class="li wxz-menu-option">'+
  227.                             '<a >by <%this[i]%></a>'+
  228.                     '</span>'+
  229.                     '<%}%>';
  230.         var html=TemplateEngine(template,this.model.engineLst);
  231.         this.UI.engineLst.html(html);
  232.     },
  233.     updateEngine:function(){
  234.         this.UI.menu.text(this.model.engine);
  235.     },
  236.     show:function(){
  237.         this.UI.myDiv.show();
  238.     },
  239.     reflesh:function(success){
  240.         var template="<p align='right'>---- by <%this.engine%>.com Search </p><p white-space='normal' class='temp' >keyword is    '<%this.keyword%>'    found  '<%this.jsonObj.cursor.resultCount%>'  Results</p><p>--------------------------------------------------<p>";
  241.         
  242.         template+='<%for(var i in this.jsonObj.results){%>'+
  243.                          '<p><p class="myTitle">'+
  244.                             '<a href="<%this.jsonObj.results[i].unescapedUrl%>"target="_blank"><%this.jsonObj.results[i].titleNoFormatting%></a>'+
  245.                          '</p>'+
  246.                          '<p class="mySnippet"><%this.jsonObj.results[i].contentNoFormatting%></p>'+
  247.                 '<%}%>';
  248.         template+='<p><p>-------------------------------------------------------------<p class="temp" margin-left="20px">" <%this.jsonObj.results.length%> "  items have been load </p>';
  249.         var html;
  250.         if(success===false){
  251.             html='<div class="loading-tips" align="center">出错了......</div>';
  252.         }else{
  253.             if(this.model.jsonObj.results.length===0){
  254.                 html='<div class="loading-tips" align="center">无搜索结果...换个关键词重新试试?</div>';
  255.             }else{
  256.                 html=TemplateEngine(template,this.model);
  257.             }
  258.         }

  259.         this.UI.myContent.html(html);
  260.     },
  261.     close:function(){
  262.         this.UI.myDiv.hide();
  263.         this.UI.inputEle.val("");
  264.     },
  265.     loading:function(){
  266.         this.UI.myContent.html('<img src="data:image/gif;base64,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" />');
  267.     },
  268.     refleshPageNavi:function(){
  269.         var page={curr:1,totalPage:1,pre:true,next:true,lst:[]};
  270.         page.curr=this.model.curr;
  271.         page.totalPage=this.model.totalPage>=10?10:this.model.totalPage;
  272.         page.pre=page.curr>1?true:false;
  273.         page.next=page.totalPage>page.curr?true:false;
  274.         for(var i=1;i<=page.totalPage;i++){
  275.             page.lst.push(i);
  276.         }
  277.         var template= '\
  278.                 <div class="pagese "id="wxz-pagese">\
  279.                 <span class="page-content">\
  280.                 <a href="javascript:void(0)" class=" <% if(this.pre){ %> page-number <%}else{%> global-disabled <%}%> mou-evt" data-page="<%this.curr-1%>">上一页</a>\
  281.                 <%for(var i in this.lst){%>\
  282.                     <span class="page-number <%if(this.lst[i]==this.curr){%> global-disabled <%}%>" data-page="<%this.lst[i]%>"><%this.lst[i]%></span>\
  283.                 <%}%>\
  284.                 </span>\
  285.                 <a href="javascript:void(0)" class=" <% if(this.next){ %> page-number <%}else{%> global-disabled <%}%> mou-evt" data-page="<%this.curr+1%>">下一页</a>\
  286.                 </div>\
  287.                 ';
  288.         var html=TemplateEngine(template,page);
  289.         this.UI.pagese.html(html);
  290.     }
  291. };


  292. var Controller=function(model,viewer){
  293.     this.model=model;
  294.     this.viewer=viewer;

  295.     var _self=this;

  296.     this.viewer.searchClick.attach(function(sender,args){
  297.         _self.search(args.curr,args.keyword);
  298.     });
  299.     this.viewer.closeClick.attach(function(){
  300.         _self.close();
  301.     });
  302.     this.viewer.engineOptChange.attach(function(sender,args){
  303.         _self.setEngine(args);
  304.     });
  305.     this.viewer.toPageClick.attach(function(sender,args){
  306.         _self.toPage(args);
  307.     });

  308.     this.model.requestEvent.attach(function(){
  309.         _self.loading();
  310.     });
  311.     this.model.contentUpdated.attach(function(state){
  312.         _self.reflesh(state);
  313.     });

  314. };
  315. Controller.prototype={
  316.     search:function(curr,args){
  317.         this.model.updateCurr(curr);
  318.         this.model.updateKeyword(args);
  319.         this.model.request();
  320.         this.viewer.show();
  321.     },
  322.     setEngine:function(engine){
  323.         this.model.setEngine(engine);
  324.         this.viewer.updateEngine();
  325.     },
  326.     toPage:function(toPageNum){
  327.         this.model.updateCurr(toPageNum);
  328.         this.model.request();
  329.     },
  330.     close:function(){
  331.         this.model.destory();
  332.         this.viewer.close();
  333.     },
  334.     loading:function(){
  335.         this.viewer.loading();
  336.     },
  337.     reflesh:function(){
  338.         this.viewer.reflesh();
  339.         this.viewer.refleshPageNavi();
  340.     },
  341.     refleshEngineLst:function(){
  342.         this.viewer.refleshEngineLst();
  343.     },
  344. };


  345. function initial(){

  346.     //根据屏幕设置div的大小位置
  347.     var
  348.     html_1 = '<li node-type="click-ele pos-ele" data-key="none" class="info-i show-item">\
  349.     <div class="search-form" id="wxz_searchForm"><input class="search-query" placeholder=" 搜索公开分享文件" id="wxz_input">\
  350.         <input type="button" value="GO" class="search-button" id="wxz_searchButton"></div></li>',
  351.     //显示页面的html
  352.     html_2 = '\
  353.     <div class="dialog dialog-gray" id="wxz_myDiv" style="z-index:99">\
  354.     <div class="dialog-header dialog-drag" id="wxz_myDiv_title">\
  355.     <h3 ><span class="dialog-header-title">搜索</span></h3>\
  356.     <div class="dialog-control" id="wxz_closeButton"><span class="dialog-icon dialog-close"></span></div>\
  357.     </div>\
  358.     <div class="dlg-bd g-clearfix offline-list-dialog">\
  359.     <div class="wxz-content">\
  360.     </div>\
  361.     <div class="dlg-bd g-clearfix offline-list-dialog">\
  362.     <div class="offline-bottom">\
  363.     <div class="offline-pageing">\
  364.     <div class="pagese " id="wxz-pagese">\
  365.     </div>\
  366.     </div>\
  367.     </div>\
  368.     </div>\
  369.     ',

  370.     cssText = '\
  371.     <style type="text/css">\
  372.     #wxz_searchButton{background-image:none;cursor:pointer;background-color: rgb(155, 154, 154);color: #ffffff;}\
  373.     .wxz-content{width: 700px;line-height: 200%;text-align: left;white-space: normal;margin-left:20px;overflow:auto;}\
  374.     .wxz-close{margin-right:20px;important;height:20px;cursor:pointer}\
  375.     .wxz-next{margin-right:20px;float:right;height:20px;cursor:pointer}\
  376.     .wxz-front{margin-right:40px;float:right;height:20px;cursor:pointer}\
  377.     .wxz-content a{color:#0066FF!important;font: 14px/1.5 arial,sans-serif!important;}\
  378.     </style>\
  379.             ',
  380.     html_4='<li node-type="menu-nav" data-key="searcher" class="wxz-menu info-i wxz-dropdown has-pulldown">\
  381.                 <em class="f-icon pull-arrow"></em>\
  382.                 <span node-type="username" class="name top-username" id="wxzMenuDisplay" style="width: auto;"></span>\
  383.                 <div node-type="menu-list" class="wxz-menu-content pulldown user-info" style="display: none;">\
  384.                     <em class="arrow"></em>\
  385.                     <div class="content" id="wxz_engineLst" style="height:auto">\
  386.                         </div>\
  387.                 </div>\
  388.             </li>\
  389.     ';
  390.     $('div.info.clearfix ul').prepend(html_1); //切换按钮
  391.     $('#ad-header-tips').remove(); //删除搜索栏了广告
  392.     //          $('div.info.clearfix ul').prepend(html_1);//搜索按钮

  393.     $('div.info.clearfix ul').prepend(html_4);//切换按钮
  394.     $('body').append(html_2);
  395.     $('head:first').append(cssText); //插入css

  396.     //应用大小和页面
  397.     $('.wxz-content').css({
  398.     height: window.innerHeight / 3 * 2
  399.     });
  400.     $('#wxz_myDiv').css({
  401.     top: window.innerHeight / 6,
  402.     left: window.innerWidth / 4
  403.     });



  404.     var bdModel=new BaseModel(['bing','google']);

  405.     bdModel.urls.bing='http://cn.bing.com/search?q=';
  406.     bdModel.urls.google='https://www.googleapis.com/customsearch/v1element?key=AIzaSyCVAXiUzRYsML1Pv6RwSG1gunmMikTzQqY&rsz=filtered_cse&num=10&hl=en&prettyPrint=true&source=gcsc&gss=.com&sig=ee93f9aae9c9e9dba5eea831d506e69a&cx=018177143380893153305:yk0qpgydx_e&q=';

  407.     bdModel.toJson.bing=function(html){
  408.         var data = { cursor: { estimatedResultCount: 0, resultCount: 0 }, results: [] };
  409.         //其中一条结果:
  410.         //<li class="b_algo"><h2>
  411.         //<a href="http://pan.baidu.com/wap/link?uk=2923110658&shareid=3468815834&third=3" target="_blank" h="ID=SERP,5101.1">YFK-<strong>RK3368</strong>-8189-20150821.rar_免费高速下载|百度云 网盘 ...</a></h2>
  412.         //<div class="b_caption"><p>文件名:YFK-<strong>RK3368</strong>-8189-20150821.rar 文件大小:497.55M 分享者:晨芯FAE 分享时间:2015-8-21 14:07 下载次数:5 ... 登录百度云客户端送2T空间 电脑版</p>
  413.         //<div class="b_attribution" u="0|5058|4835271386991248|8OMhcGIIj8GW08I41R5UoSyJpl2_5Pny"><cite><strong>pan.baidu.com</strong>/wap/link?uk=2923110658&shareid=3468815834&...</cite><span class="c_tlbxTrg">
  414.         //<span class="c_tlbxH" H="BASE:CACHEDPAGEDEFAULT" K="SERP,5102.1"></span></span></div></div></li>
  415.         //http://www.jb51.net/article/49083.htm在JS中解析HTML字符串示例代码:
  416.         var el = $( '<div></div>' );
  417.         el.html(html);
  418.         var b_results = $("#b_results", el);
  419.         var b_algo_Arry = $("li.b_algo", b_results);
  420.         $.each(b_algo_Arry, function(index, val) {
  421.             var tempResult = {
  422.                 unescapedUrl: "",
  423.                 titleNoFormatting: "",
  424.                 contentNoFormatting: ""
  425.             };
  426.             tempResult.unescapedUrl = $(val).find("h2 a").attr('href');
  427.             tempResult.titleNoFormatting = $(val).find("h2 a").text();
  428.             tempResult.contentNoFormatting = $(val).find('div.b_caption p').text();
  429.             data.results.push(tempResult);
  430.         });
  431.         ////处理统计结果
  432.         var rawResultCount=$('.sb_count',b_results).text();
  433.         var matchLst=[];   
  434.         matchLst=rawResultCount.match(/([0-9]{1,3}(,[0-9]{3})+)/g);
  435.         if(matchLst!==null){//匹配100,000,111之类的情况
  436.             data.cursor.resultCount=matchLst[0].replace(',','');
  437.         }else{
  438.             matchLst=rawResultCount.match(/\d+/g);
  439.             if(matchLst!==null){//匹配10 个结果之类的情况,以及1-11,共11个的情况
  440.             data.cursor.resultCount=matchLst.pop();
  441.             }else{//匹配无的情况
  442.             data.cursor.resultCount=0;
  443.             }
  444.         }
  445.         data.cursor.resultCount = parseInt( data.cursor.resultCount.toString(),10);
  446.         data.cursor.estimatedResultCount = data.cursor.resultCount;
  447.         return data;        
  448.     };
  449.     bdModel.toJson.google=function(responseText){
  450.         var data=JSON.parse(responseText);
  451.         data.cursor.resultCount=parseInt(data.cursor.resultCount.split(',').join(''));
  452.         return data;        
  453.     };

  454.     bdModel.compileUrl.bing=function(_self){
  455.         return _self.urls.bing + _self.keyword + '+site%3Apan.baidu.com' + '&first=' + (_self.curr-1)*10;
  456.     };
  457.     bdModel.compileUrl.google=function(_self){
  458.         return _self.urls.google + _self.keyword + '&start=' + (_self.curr-1)*10;
  459.     };

  460.     var bdView=new Viewer(bdModel,{
  461.         inputEle:$('#wxz_input'),
  462.         searchBtn:$('#wxz_searchButton'),
  463.         closeBtn:$('#wxz_closeButton'),
  464.         myDiv:$('#wxz_myDiv'),
  465.         myContent:$('.wxz-content'),
  466.         menu:$('#wxzMenuDisplay'),
  467.         engineBtn:$('.wxz-menu-option'),
  468.         engineLst:$('#wxz_engineLst'),
  469.         pagese:$('#wxz-pagese'),
  470.         toPageBtn:$('.page-number'),
  471.     });
  472.     var bdController=new Controller(bdModel,bdView);
  473.     bdController.refleshEngineLst();
  474.     bdController.setEngine('bing');
  475. }

  476.     var
  477.     t = window.setInterval(function() { //百度云把一些内容放到后面加载,因此我设置了一个延时循环,每隔100ms选择一下所需的元素,当所需的元素存在时,开始脚本,同时停止延时循环
  478.         if ($("#ad-header-tips").length > 0) {
  479.             window.clearInterval(t);
  480.             initial();
  481.         }
  482.         console.log('waiting');
  483.     }, 100);
复制代码
然后你在你的百度云网页版上就可以找到一个搜索框,国内用户就用bing搜索就行了




回复

使用道具 举报

28
苑生百花 - 少女编号岛风 - 舰队collection和泉 玲奈 - 无色的幻影世界矢泽妮可 长发ver. - lovelive!鹿岛 - 舰队collection羽濑川小鸠 - 我的朋友很少皇缠 - 神装少女小缠乌丸千岁 - 少女编号樱宁宁 - New Game!雾雨魔理沙 - 东方Project阿库娅 - 为美好的世界献上祝福!绪方智绘里 - 偶像大师灰姑娘小鸟游 六花 - 中二病也要谈恋爱泷本日富美 - New Game!惠惠 - 为美好的世界献上祝福!樱花虾 - 绚樱 - 绘师: 初夏中野梓 生日ver. - 轻音少女小埋 - 干物妹小埋魔法店員おるる☆スタッフ - MUGEN 中野TRF香草ver2 - Sayori香草 - Sayori巧克力 - Sayori柏崎星奈 - 柏崎星奈小豆梓 - 小豆梓博丽灵梦 - 东方Project凉风青叶 - New Game!赫斯提亚 - 地下城邂逅10周年纪念勋章 - 梦次元10周年纪念勋章
发表于 2016-7-28 14:03:06 自豪地使用爪机中
好長
真厲害
我只是一個旅行者
回复

使用道具 举报

发表于 2016-7-28 16:03:11
哇塞,十分实用的东西
回复

使用道具 举报

发表于 2016-7-28 16:16:18
回复 2 楼 謎之旅者
好長
真厲害

下面那个不是我写出来的
回复

使用道具 举报

沙耶 - 绘师: 和錆艾米莉娅 王选ver - Re:从零开始的异世界生活吽 - Show By Rock!![CP]可蕾特&宇佐美瑞希 - 这个美术社大有问题!宇佐美瑞希 - 这个美术社大有问题!
发表于 2016-7-28 17:44:17
不明觉厉
签名什么的,换换就好= =
回复

使用道具 举报

苑生百花 - 少女编号火力八卦炉 - 东方Project吽 - Show By Rock!!
发表于 2016-7-28 17:46:36
哦原来第二点是搜索所有公开分享文件  
有那么点期盼可以搜索服务器内所有含关键词文件的我真是
感受到什么  继而想到什么
回复

使用道具 举报

发表于 2016-7-28 18:12:26
回复 6 楼 ⑨鼠
哦原来第二点是搜索所有公开分享文件  
有那么点期盼可以搜索服务器内所有含关键词文件的我真是 ...

这个估计你就只有找李彦宏商量一下了
回复

使用道具 举报

苑生百花 - 少女编号火力八卦炉 - 东方Project吽 - Show By Rock!!
发表于 2016-7-28 18:18:58
回复 7 楼 net
这个估计你就只有找李彦宏商量一下了

不这没得商量 ,我要找的恰好差不多都是‘他’要删的(已经删很多了)
感受到什么  继而想到什么
回复

使用道具 举报

苑生百花 - 少女编号火力八卦炉 - 东方Project吽 - Show By Rock!!
发表于 2016-7-28 18:26:10
回复 8 楼 ⑨鼠
不这没得商量 ,我要找的恰好差不多都是‘他’要删的(已经删很多了) ...

额这么说有点不对头   就是隐私问题什么的这也绝不能这么做
感受到什么  继而想到什么
回复

使用道具 举报

初音未来 LAT式 - Vocaloid桐间纱路 - 请问您今天要来点兔子吗?雪初音2016 - Vocaloid
发表于 2016-7-28 22:21:52
回复 9 楼 ⑨鼠
额这么说有点不对头   就是隐私问题什么的这也绝不能这么做

找全部文件就不是侵犯隐私权那么简单了
因为我找到了我的愿望,即使赌上性命去战斗也无所谓,我有了可以这样想的理由。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则