整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          網(wǎng)頁(yè)禁止復(fù)制粘貼怎么辦?教你6招,快速搞定

          網(wǎng)頁(yè)禁止復(fù)制粘貼怎么辦?教你6招,快速搞定

          是不是經(jīng)常在網(wǎng)上遇到一些無(wú)法復(fù)制的文章?那么問(wèn)題來(lái)了,有什么辦法可以繞開(kāi)這種限制,將網(wǎng)頁(yè)內(nèi)容輕松下載下來(lái)呢?

          其實(shí),既然是網(wǎng)頁(yè)內(nèi)容,那么意味著HTML代碼是公開(kāi)的,將相關(guān)文本復(fù)制下來(lái)根本不是問(wèn)題,一起來(lái)看看要怎么做吧。


          1

          手機(jī)拍照識(shí)別

          難度:●○○○○

          效果:●●●●○

          這是最簡(jiǎn)單的一個(gè)辦法了,如今手機(jī)都自帶文字識(shí)別功能。首先用QQ或微信將要識(shí)別的網(wǎng)頁(yè)截取成圖片,發(fā)送到你的手機(jī)。然后打開(kāi)手機(jī)“掃一掃”,選擇剛剛收到的網(wǎng)頁(yè)截圖,最后點(diǎn)擊“識(shí)別文字”就可以了。

          一般來(lái)說(shuō),只要你的照片足夠清晰,字體基本標(biāo)準(zhǔn),那么實(shí)現(xiàn)95%以上的識(shí)別率還是不成問(wèn)題的。稍后通讀一下文章,將里面的識(shí)別錯(cuò)誤簡(jiǎn)單修正一下,就能直接生成文件使用了。

           

          2

          切換IE內(nèi)核

          難度:●○○○○

          效果:●●●○○

          很多小伙伴都忽略過(guò)這個(gè)辦法,如今IE已經(jīng)被邊緣化,絕大多數(shù)瀏覽器都是WebKit內(nèi)核,網(wǎng)頁(yè)設(shè)計(jì)師也是一樣,因此當(dāng)你發(fā)現(xiàn)一個(gè)網(wǎng)站設(shè)置了禁止復(fù)制時(shí),不妨將網(wǎng)址拖拽到IE瀏覽器里試一試,沒(méi)準(zhǔn)會(huì)有意外驚喜!

          順便說(shuō)一句,如今很多國(guó)產(chǎn)瀏覽器都使用了雙內(nèi)核,其中“兼容模式”就是IE核心,點(diǎn)擊切換試一試吧,和拷貝到IE里是一個(gè)效果!


          3

          查看源代碼

          難度:●●●●○○

          效果:●●●●○○

          如果借助上一種方法“撿漏”不成功,那么就得動(dòng)用一些“大招”了!這個(gè)方法基本可以搞定90%以上的網(wǎng)站,但操作起來(lái)稍微麻煩了一點(diǎn)。

          1、在禁止復(fù)制的網(wǎng)頁(yè)上右擊鼠標(biāo),選擇“查看源代碼”:

          2、將打開(kāi)的源碼頁(yè)面下拉,找到帶有文字內(nèi)容的區(qū)域。選中這個(gè)區(qū)域,將內(nèi)容粘貼到Word文檔中:

          3、 直接粘貼過(guò)來(lái)的內(nèi)容會(huì)夾雜很多不必要的代碼,這時(shí)就是“查找與替換”大顯身手的時(shí)候了,將要?jiǎng)h除的代碼復(fù)制到查找框內(nèi),然后將替換為設(shè)空,最后點(diǎn)擊“全部替換”按鈕,直至代碼全部刪除為止:

            

          4

          保存網(wǎng)頁(yè)格式

          難度:●●○○○○

          效果:●●●●●○

          這其實(shí)是上一種方法的“人性化”版,至少?zèng)]有看起來(lái)很頭疼的代碼頁(yè)了,而且它可以用在那些禁止鼠標(biāo)右鍵的網(wǎng)頁(yè)中。

          打開(kāi)禁止復(fù)制的網(wǎng)頁(yè),按快捷鍵Ctrl+S,在彈出的保存對(duì)話框中選擇“網(wǎng)頁(yè),僅HTML”。雙擊保存好的網(wǎng)頁(yè)文件,這時(shí)你會(huì)發(fā)現(xiàn)原本無(wú)法復(fù)制的內(nèi)容已經(jīng)可以正常拷貝了。

            

          5

          打印法

          難度:●●●●●○

          效果:●●●●●○

          這個(gè)方法只能用于WebKit內(nèi)核瀏覽器(包括國(guó)產(chǎn)多數(shù)雙核瀏覽器),只要在禁止復(fù)制的網(wǎng)頁(yè)上按快捷鍵Ctrl+P,進(jìn)入打印預(yù)覽模式,就能直接通過(guò)鼠標(biāo)完成復(fù)制操作。

           

          6

          插件法

          難度:●●●●●○

          效果:●●●●●○

          如果上面的這些方法都不奏效,或者操作步驟太繁瑣,這里還有一個(gè)終極大法,那就是借助插件完成。類似的插件有很多,比如Enable Copy,操作時(shí)只要將它安裝到瀏覽器上,遇到有復(fù)制限制的頁(yè)面點(diǎn)擊一下,就能輕松破解這些限制,具體的大家可以自行嘗試一下。

          我們學(xué)習(xí)了 HTML 提供的原生拖放(drag & drop)后,是時(shí)候想一想這個(gè)東西可以用來(lái)作什么可以在什么時(shí)候使用使用的場(chǎng)景等等

          場(chǎng)景分析

          當(dāng)我們?cè)谧?cè)成功一個(gè)賬戶時(shí),一般網(wǎng)站會(huì)讓我們上傳我們的用戶頭像,或者在實(shí)名認(rèn)證的時(shí)候會(huì)涉及到身份證圖片上傳到等,這時(shí)候我們可以使用input提供的file屬性進(jìn)行選擇本地文件進(jìn)行上傳。

          我們?cè)傧胍幌拢?dāng)在電腦端的情況下,當(dāng)用戶打開(kāi)文件選擇框時(shí)再尋找圖片對(duì)應(yīng)的文件夾,再進(jìn)行選取文件的時(shí)候是不是會(huì)有點(diǎn)麻煩呢?我們可不可以讓用戶找到圖片文件,直接引入實(shí)現(xiàn)上傳呢?答案是可以的。

          怎么做

          經(jīng)過(guò)這些分析后,我們可以嘗試使用 HTML5 提供的拖拽,使得目標(biāo)元素增加讀取文件功能,然后使用 ajax 實(shí)現(xiàn)圖片上傳。

          談一談我們需要使用到的技術(shù):

          • Drag & Drop: HTML5 基于拖拽的事件機(jī)制
          • File API: 可以很方便的讓 Web 應(yīng)用訪問(wèn)文件對(duì)象,F(xiàn)ile API 包括 FileList、Blob、File、FileReader、URI scheme,本文主要講解拖拽上傳中用到的 FileList 和 FileReader 接口。
          • FormData: FormData 是基于 XMLHttpRequest Level 2 的新接口,可以方便 web 應(yīng)用模擬 Form 表單數(shù)據(jù),最重要的是它支持文件的二進(jìn)制流數(shù)據(jù),這樣我們就能夠通過(guò)它來(lái)實(shí)現(xiàn) AJAX 向后端發(fā)送文件數(shù)據(jù)了。

          HTML5 拖拽事件

          關(guān)于 Drag & Drop 拖拽事件,之前我寫過(guò)一篇專門介紹的文章,HTML5-拖拽,大家有興趣的話可以點(diǎn)擊鏈接查看,我在這里就不在多啰嗦了~下面直接出拖拽上傳的簡(jiǎn)要代碼示例

          var oDragWrap=document.body;
          //拖進(jìn)
          oDragWrap.addEventListener(
           "dragenter",
           function(e) {
           e.preventDefault();
           },
           false
          );
          //拖離
          oDragWrap.addEventListener(
           "dragleave",
           function(e) {
           dragleaveHandler(e);
           },
           false
          );
          //拖來(lái)拖去 , 一定要注意dragover事件一定要清除默認(rèn)事件
          //不然會(huì)無(wú)法觸發(fā)后面的drop事件
          oDragWrap.addEventListener(
           "dragover",
           function(e) {
           e.preventDefault();
           },
           false
          );
          //扔
          oDragWrap.addEventListener(
           "drop",
           function(e) {
           dropHandler(e);
           },
           false
          );
          var dropHandler=function(e) {
           //將本地圖片拖拽到頁(yè)面中后要進(jìn)行的處理都在這
          };
          

          獲取文件數(shù)據(jù) HTML5 File API

          File API 中的 FileReader 接口,作為 File API 的一部分,F(xiàn)ileReader 專門用來(lái)讀取文件。我們?cè)谶@里主要介紹一些 File API 中的 FileList 接口,它主要通過(guò)兩個(gè)途徑獲取本地文件列表,一是<input type="file"/>的表單形式,另一種則是e.dataTransfer.files拖拽事件傳遞的文件信息。

          var fileList=e.dataTransfer.files;
          

          使用 files 方法將會(huì)獲取到拖拽文件的數(shù)組形式的數(shù)據(jù),每個(gè)文件占用一個(gè)數(shù)組的索引,如果索引不存在文件數(shù)據(jù),將返回 Null。可以通過(guò)length屬性獲取文件的數(shù)量。

          var fileNum=fileList.length;
          

          拖拽上傳需要注意的是需要判斷兩個(gè)條件

          1. 拖拽的是文件而不是頁(yè)面的元素
          2. 拖拽的是圖片而不是其他類型的文件,可以通過(guò) file.type 屬性獲取文件的類型
          // 檢測(cè)是否是拖拽文件到頁(yè)面的操作
          if (fileList.length===0) {
           return;
          }
          // 檢測(cè)文件是不是圖片
          if (fileList[0].type.indexOf("image")===-1) {
           return;
          }
          

          下面我們看看結(jié)合之前的拖拽事件,來(lái)實(shí)現(xiàn)拖拽圖片并在頁(yè)面中預(yù)覽

          var dropHandler=function(e) {
           e.preventDefault(); //獲取文件列表
           var fileList=e.dataTransfer.files;
           //檢測(cè)是否是拖拽文件到頁(yè)面的操作
           if (fileList.length==0) {
           return;
           }
           //檢測(cè)文件是不是圖片
           if (fileList[0].type.indexOf("image")===-1) {
           return;
           }
           //實(shí)例化file reader對(duì)象
           var reader=new FileReader();
           var img=document.createElement("img");
           reader.onload=function(e) {
           img.src=this.result;
           oDragWrap.appendChild(img);
           };
           reader.readAsDataURL(fileList[0]);
          };
          

          當(dāng)完成以上操作后,相信你可以成功的完成了拖拽圖片預(yù)覽的操作。當(dāng)你查看 img 標(biāo)簽時(shí)會(huì)發(fā)現(xiàn),img的src屬性是一個(gè)超長(zhǎng)的文件二進(jìn)制數(shù)據(jù),當(dāng)你需要很多這種的img元素時(shí),建議將展示區(qū)域脫離文檔流,讓其絕對(duì)定位減少頁(yè)面的 reflow

          AJAX 上傳圖片

          既然已經(jīng)獲取到拖拽到web頁(yè)面中的圖片數(shù)據(jù)了,下一步就是將其發(fā)送到服務(wù)器端。

          總結(jié)

          1. 監(jiān)聽(tīng)拖拽: 監(jiān)聽(tīng)頁(yè)面元素的拖拽事件,包括: dragenter、dragover、dragleave 和drop,一定要將dragover的默認(rèn)事件取消掉,不然無(wú)法觸發(fā)drop事件。如需拖拽頁(yè)面里面的元素,需要給其添加屬性draggable="true"
          2. 獲取拖拽文件: 在 drop 事件觸發(fā)后通過(guò)e.dataTransfer.files獲取拖拽文件列表,一定要將drop的默認(rèn)事件取消掉,否則會(huì)默認(rèn)打開(kāi)文件length屬性獲取文件數(shù)量,type屬性獲取文件類型
          3. 讀取圖片數(shù)據(jù)并添加預(yù)覽圖: 實(shí)例化FileReader對(duì)象,通過(guò)其readAsDataURL(file)方法獲取文件二進(jìn)制流,并監(jiān)聽(tīng)其onload事件,將e.result賦值給img的src屬性,最后將圖片添加到DOM中
          4. 發(fā)送圖片數(shù)據(jù)


          .進(jìn)入打印預(yù)覽;

          2.禁用Java腳本;

          3.直接拖動(dòng)到Word;

          4.使用冰點(diǎn)下載器;

          5.應(yīng)用一鍵讀圖插件;

          6.百度快照;

          7.百度翻譯;

          8.以“HTML”類型保存(Ctrl+S)。

          以上幾個(gè)辦法可能會(huì)因不同的網(wǎng)站,不同的瀏覽器,不同的時(shí)期而有所不同,但確實(shí)可以解決很多問(wèn)題。經(jīng)親測(cè),總會(huì)有一種是能用的。希望能幫到您。


          主站蜘蛛池模板: 亚洲av无码天堂一区二区三区| 动漫精品专区一区二区三区不卡| 人体内射精一区二区三区| 最新中文字幕一区二区乱码| 亚洲老妈激情一区二区三区| 日韩三级一区二区三区| 久久久久人妻精品一区| 色综合视频一区二区三区| 亚洲av乱码一区二区三区香蕉| 免费视频一区二区| 日本高清成本人视频一区| 午夜福利国产一区二区| 日韩一区二区三区视频| 免费萌白酱国产一区二区| 精品成人一区二区三区免费视频| 日韩美女视频一区| 国产一区二区三区在线| 国产伦精品一区二区三区视频小说| 日韩成人一区ftp在线播放| 日本福利一区二区| 国产在线第一区二区三区| 美女视频一区二区| 无码人妻久久一区二区三区蜜桃 | 在线一区二区三区| 蜜臀Av午夜一区二区三区| 五十路熟女人妻一区二区| 无码日韩精品一区二区免费| 99偷拍视频精品一区二区| 国产午夜一区二区在线观看| 一区三区三区不卡| 91久久精一区二区三区大全| 精品一区二区久久久久久久网站| 久久精品岛国av一区二区无码| 亚洲一区无码中文字幕乱码| 国产香蕉一区二区精品视频| 精品日韩一区二区| 国产一区二区在线观看app| 国产精品视频一区二区噜噜 | 精品女同一区二区| 国产高清在线精品一区小说 | 亚州国产AV一区二区三区伊在|