TA的每日心情 | 奋斗 2023-7-6 11:14 |
---|
签到天数: 253 天 [LV.8]以坛为家I
荣誉开发者
累计点滴改进,迈向完美品质。
- 积分
- 2178
|
本帖最后由 Hangover 于 2022-3-17 19:46 编辑
首先尝试正常通过require的方式引入js文件
- // @require https://unpkg.com/layui@2.6.8/dist/layui.js
复制代码
可以发现引入扩展模块的路径是根据当前域名来加载的
解决方法一:
创建script标签包含js文件再插入到body中
- let script = document.createElement("script");
- script.type = "text/javascript";
- script.src="https://unpkg.com/layui@2.6.8/dist/layui.js";
- document.body.appendChild(script);
- unsafeWindow.onload = function () {
- layer.msg('只想弱弱提示');
- }
复制代码
打开F12可以看到扩展模块按照正确的路径加载,并且layer组件的功能可以正常使用
解决方法二:
修改layui.js文件源码再发布:https://cdn.jsdelivr.net/npm/zhangsan-layui@1.0.3/layui.js
想自己修改发布的可以阅读>>>NPM发布魔改包:https://bbs.tampermonkey.net.cn/thread-1123-1-1.html
有时间的朋友可以仔细分析下,这里只修改了一行代码
就是源文件扩展模块的加载路径
现在再以require的方式引入js文件
- // @require https://cdn.jsdelivr.net/npm/zhangsan-layui@1.0.3/layui.js
- let myapp = document.createElement("div");
- document.body.appendChild(myapp);
- myapp.id = "my-app";
- myapp.innerHTML = `
- <link rel="stylesheet" href="https://unpkg.com/layui@2.6.8/dist/css/layui.css">
- <div class="layui-inline">
- <input type="text" class="layui-input" id="test">
- </div>`
- layui.use('laydate', function () {
- var laydate = layui.laydate;
- laydate.render({
- elem: '#test',
- value: new Date(),
- zIndex: 99999999,
- theme: '#328dd1',
- ready: function (date) {
- console.log(date)
- },
- change: function (value, date, endDate) {
- console.log(value, date, endDate)
- },
- done: function (value, date, endDate) {
- console.log(value, date, endDate)
- }
- })
- })
复制代码
上图是Layui库中的日期组件,可以看到js与css文件都成功加载,组件功能正常使用
完整demo:https://bbs.tampermonkey.net.cn/thread-1911-1-1.html
与个别网页的插件不兼容的话,可以再分析修改源码发布~
本文在李恒道大师指导下编写~
|
|