简介
由于网站可能会存在内容安全策略(CSP)的限制,所以通过 GM_addStyle 和 GM_getResourceText 加载 CSS 和字体文件。
layui-tampermonkey - npm 的layui.js
删除了layui.addcss
,layui.css
替换了layui-icon;src:url
。
// ==UserScript==
// 略……
// @resource css https://cdn.jsdelivr.net/npm/layui-tampermonkey@2.9.9-rc.3/css/layui.css
// @require https://cdn.jsdelivr.net/npm/layui-tampermonkey@2.9.9-rc.3/layui.js
// @grant GM_addStyle
// @grant GM_getResourceText
// ==/UserScript==
(() => {
'use strict'
// 加载 CSS
GM_addStyle(GM_getResourceText('css'))
// layer 图标未知原因失效,手动添加样式
$(document.head).append(`<style>
.layui-layer-ico{background:url('https://cdn.bootcdn.net/ajax/libs/layer/3.5.1/theme/default/icon.png') no-repeat}
.layui-layer-ico1{background-position:-30px 0}
.layui-layer-ico2{background-position:-60px 0}
.layui-layer-ico3{background-position:-90px 0}
.layui-layer-ico4{background-position:-120px 0}
.layui-layer-ico5{background-position:-150px 0}
.layui-layer-ico6{background-position:-180px 0}
</style>`)
})
问题
layui.table.render 方法配置渲染表格时报错 Laytpl Error: ReferenceError: layui is not defined
添加@grant unsafeWindow
,并在table.render
前调用unsafeWindow.layui = layui
,猜测laytpl
是个动态过程,需要在沙盒外调用layui
。
评论区