如何利用JavaScript保存瀏覽器div內(nèi)容為圖片
方法一:使用html2canvas插件 首先,我們可以通過(guò)使用html2canvas插件來(lái)實(shí)現(xiàn)將div轉(zhuǎn)換為canvas的功能。這個(gè)插件非常強(qiáng)大且易于使用。 首先,你需要從git或其他地方下載并引
方法一:使用html2canvas插件
首先,我們可以通過(guò)使用html2canvas插件來(lái)實(shí)現(xiàn)將div轉(zhuǎn)換為canvas的功能。這個(gè)插件非常強(qiáng)大且易于使用。
首先,你需要從git或其他地方下載并引入html2canvas插件。
然后,在你的代碼中加入以下核心代碼:
html2canvas($("#content"), {
onrendered: function(canvas) {
(canvas);
}
});
以上代碼會(huì)將div元素渲染為canvas,并將其添加到頁(yè)面中。
方法二:將DOM轉(zhuǎn)換成SVG再轉(zhuǎn)換成Canvas
另一種方法是直接將DOM轉(zhuǎn)換成SVG,然后再將SVG轉(zhuǎn)換成Canvas。這里只提供一個(gè)思路,并給出示例代碼。
首先,你需要在頁(yè)面上添加一個(gè)簡(jiǎn)單的div:
lt;div id"content" style"width:150px;height:150px;border:1px lightblue solid"gt;
lt;spangt;Hello worldlt;/spangt;
lt;brgt;
lt;spangt;lt;h2gt;Are you hear me?!lt;/h2gt;lt;/spangt;
lt;/divgt;
然后,你需要添加一個(gè)保存按鈕:
lt;button onclick"saveImage()"gt;Savelt;/buttongt;
接下來(lái),在JavaScript代碼中定義一個(gè)saveImage函數(shù):
function saveImage() {
const content document.querySelector("#content");
const svg ("", "svg");
const foreignObject ("", "foreignObject");
("width", );
("height", );
("width", "100%");
("height", "100%");
((true));
(foreignObject);
const canvas ("canvas");
canvas.width ;
canvas.height ;
const ctx ("2d");
const data new XMLSerializer().serializeToString(svg);
const DOMURL window.URL || window.webkitURL || window;
const img new Image();
const svgBlob new Blob([data], {type: "image/svg xml;charsetutf-8"});
const url (svgBlob);
function() {
ctx.drawImage(img, 0, 0);
(url);
// 使用canvas2image插件保存為圖片
(canvas);
};
url;
}
以上代碼會(huì)將div轉(zhuǎn)換成SVG,再將SVG轉(zhuǎn)換成Canvas,并最終將Canvas保存為圖片。
需要注意的是,這個(gè)示例只是提供了一種思路,實(shí)際使用時(shí)可能還需要根據(jù)具體情況進(jìn)行適當(dāng)?shù)男薷暮驼{(diào)整。