Skip to content

页面水印

useWatermark 提供了在页面上覆盖全屏水印的能力,支持自定义文本、颜色与旋转角度,并内置了简单的防篡改机制(防止通过 F12 删除 DOM 节点)。

基础用法

通常在 app.vuelayouts/default.vue 中调用,以实现全局覆盖。

vue
<script setup lang="ts">
const { setWatermark, clearWatermark } = useWatermark()

onMounted(() => {
  setWatermark({
    text: 'Nuxt Web Plugin - 内部专用',
    color: 'rgba(0, 0, 0, 0.1)'
  })
})

// 可选:在特定条件下清除
// clearWatermark()
</script>

API 参考

setWatermark(options)

设置全屏水印。

属性类型默认值说明
textstring必填水印显示的文本内容
fontSizenumber16字体大小 (px)
colorstringrgba(200, 200, 200, 0.30)字体颜色,支持 hex/rgba
rotatenumber-20旋转角度 (deg)
gap[number, number][100, 100]水印之间的水平与垂直间距
zIndexnumber9999DOM 节点的层级

clearWatermark()

清除当前页面上的水印节点,并停止防篡改监控。

防篡改机制

插件内部使用 MutationObserver 监听 DOM 变化:

  • 如果水印节点被手动删除,插件会立即重新插入。
  • 如果水印节点的样式(如 display: noneopacity: 0)被修改,插件会强制恢复默认样式。

Released under the MIT License.