博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网页加水印 svg 方式
阅读量:5272 次
发布时间:2019-06-14

本文共 1807 字,大约阅读时间需要 6 分钟。

/** *网页加水印 svg 方式 * * @export * @param {*} [{ *   container = document.body, *   content = '请勿外传', *   width = '300px', *   height = '200px', *   opacity = '0.2', *   fontSize = '20px', *   zIndex = 1000 * }={}] */ function __waterDocumentSvg({  container = document.body,  content = '请勿外传',  width = '120px',  height = '200px',  opacity = '0.2',  fontSize = '20px',  zIndex = 0} = {}) {  const args = arguments[0];  const svgStr = `
${content}
`; const base64Url = `data:image/svg+xml;base64,${window.btoa(unescape(encodeURIComponent(svgStr)))}`; const __wm = document.querySelector('.__wm'); const watermarkDiv = __wm || document.createElement("div"); const styleStr = ` position:absolute; top:0; left:0; width:100%; height:100%; z-index:${zIndex}; pointer-events:none; background-repeat:repeat; background-image:url('${base64Url}')`; watermarkDiv.setAttribute('style', styleStr); watermarkDiv.classList.add('__wm'); if (!__wm) { container.style.position = 'relative'; container.insertBefore(watermarkDiv, container.firstChild); } const MutationObserver = window.MutationObserver || window.WebKitMutationObserver; if (MutationObserver) { let mo = new MutationObserver(function () { const __wm = document.querySelector('.__wm'); // 只在__wm元素变动才重新调用 __canvasWM if ((__wm && __wm.getAttribute('style') !== styleStr) || !__wm) { // 避免一直触发 mo.disconnect(); mo = null; __waterDocumentSvg(JSON.parse(JSON.stringify(args))); } }); mo.observe(container, { attributes: true, subtree: true, childList: true }) }} //onload时触发水印绘制 window.οnlοad=function(){ __waterDocumentSvg({content : "申继林"}); };

 

转载于:https://www.cnblogs.com/shenjilin/p/9856574.html

你可能感兴趣的文章
mysql 8.0 zip包安装
查看>>
awk 统计
查看>>
模板设计模式的应用
查看>>
实训第五天
查看>>
平台维护流程
查看>>
2012暑期川西旅游之总结
查看>>
Linux发行版的排行
查看>>
12010 解密QQ号(队列)
查看>>
2014年辛星完全解读Javascript第一节
查看>>
装配SpringBean(一)--依赖注入
查看>>
java选择文件时提供图像缩略图[转]
查看>>
方维分享系统二次开发, 给评论、主题、回复、活动 加审核的功能
查看>>
Matlab parfor-loop并行运算
查看>>
string与stringbuilder的区别
查看>>
2012-01-12 16:01 hibernate注解以及简单实例
查看>>
iOS8统一的系统提示控件——UIAlertController
查看>>
PAT甲级——1101 Quick Sort (快速排序)
查看>>
python创建进程的两种方式
查看>>
1.2 基础知识——关于猪皮(GP,Generic Practice)
查看>>
迭代器Iterator
查看>>