JavaScript 是一種常用的編程語言,可以將網頁制作的更加生動有趣,同時它也有一些特殊的功能,比如保存網頁。在很多時候,我們需要將整個網頁保存在本地,以便以后離線閱讀或者備份,有時我們還需要保存網頁中的一些圖片,這就需要我們使用 JavaScript 的知識了。
使用 JavaScript 保存網頁非常簡單,我們只需要使用以下代碼即可:
window.open('data:text/html;charset=utf-8,' + encodeURIComponent(document.documentElement.outerHTML));
在以上代碼中,window.open()函數是將新網頁打開在一個新的瀏覽器窗口中,接下來的字符串'data:text/html;charset=utf-8,'是將保存的網頁數據轉換成文本數據的 MIME 類型,然后通過encodeURIComponent()函數轉化成一個 url 編碼格式的字符串,這里需要注意的是使用 encodeURIComponent() 函數是為了將特殊字符轉義,比如 '<' 和 '>' 等符號。最后,document.documentElement.outerHTML是將整個網頁的 HTML 代碼轉化成文本數據的操作。
接下來,我們來看看如何保存網頁中的圖片。同樣,我們只需要用一行簡單的 JavaScript 代碼就可以實現。
var images = document.getElementsByTagName('img') for(var i = 0; i< images.length; i++) { var img = new Image(); img.crossOrigin = 'Anonymous'; img.src = images[i].src; images[i].src = img.src; window.open(img.src) }
在以上代碼中,我們使用document.getElementsByTagName()函數獲取到了網頁中的所有圖片節點,然后使用一個 for 循環將每張圖片的地址轉成 base64 編碼格式,并重新給每個圖片節點設置了新的 src 屬性,這樣網頁中的所有圖片就全部被保存了下來。最后使用window.open()函數,可以將圖片在新的瀏覽器窗口中打開。
總體來說,使用 JavaScript 保存網頁非常簡單,但是需要注意的是,保存網頁中的圖片有一些限制,比如無法保存跨域圖片等,需要對圖片進行跨域處理。另外,不同的瀏覽器有不同的限制,部分瀏覽器禁止了一些保存文件的操作。因此,在使用 JavaScript 保存網頁時一定要仔細、謹慎。