纯情博客为您提供最新网络安全黑客博客信息资讯
$init['paste_postprocess'] ="function (plugin, args) {}"PHP错误演示
下面的代码是我原来的写法,都是错误的wordpress标签调用渗透测试,只有上面的代码是正确的
function test(){`}$init['paste_postprocess'] ="test"// or`$init['paste_postprocess'] =test
为什么不选择粘贴预处理
由于函数返回的参数args是字符串html,因此很难搜索或过滤指定标签
而args.node是dom的形式,可以直接设置dom属性来改变样式和属性
paste_preprocess查找复制的内容dom中的所有img标签
用于查找img标签集合
let imgArr = args.node.querySelectorAll('img')迭代集合
为每个img标签设置id和图像加载错误事件监听器
生成随机字符串作为img标签id,方便以后定位
将图片的源地址(如公众号的图片地址)作为自定义属性放在标签上(data-)
将图片地址更改为将要存储在博客服务器上的地址(域名+文件夹+随机字符串+图片后缀)
设置图片加载错误监控,只要检测到错误,就把图片id放到全局变量()中(图片暂时不处理国内 chatgpt,队列后面按顺序处理,避免同时上传图片)
js生成随机字符串
function randomString(length) {` var str = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';var result = '';for (var i = length; i > 0; --i) {result += str[Math.floor(Math.random() * str.length)];}return result;` }
设置图片自定义
let imgArr = args.node.querySelectorAll('img')` if (imgArr && imgArr.length > 0) {window.errImgArr=[]for (let i = 0; i < imgArr.length; ++i) {let ranStr = randomString(10)ranStrArr[i] = ranStrimgArr[i].ranStr = ranStrimgArr[i].imgUrl = imgArr[i].getAttribute('src')imgArr[i].setAttribute('data-origin', imgArr[i].getAttribute('src'))imgArr[i].setAttribute('alt',img)imgArr[i].setAttribute('id', ranStr)imgArr[i].setAttribute('src', host+/wp-content/uploads/images/+ranStr+.png)imgArr[i].setAttribute('data-src', host+`/wp-content/uploads/images/`+ranStr+`.png`)imgArr[i].onerror =(e)=>{console.log(`图片加载错误`,e,window)window.errImgArr.push(imgArr[i].ranStr)}}}`
设置3到5秒的延迟后chatgpt,检查全局变量
如果有值则使用for循环同步上传并按顺序设置正确的图片地址
.. 方法可用于获取
直接得到的是博客管理后台的dom网络培训脚本插件,不是编辑器的dom
async function imgtoggle(){` if(window&&window.errImgArr&&window.errImgArr.length>0){for (var i = 0; i{imgtoggle()` },5000)
其中就是上传图片到博客php接口
功能
设置接口为同目录下的api.php
传递的参数是原始图片地址wordpress标签调用,以及图片id(作为图片文件名)
注意这里使用了post方法和参数传递,以避免get参数过长和特殊字符的问题
易于使用的php简单值
function saveImg(imgUrl, ranStr) {` var host = document.location.originreturn new Promise((resolve, reject) => {let formdata = new FormData();formdata.append('imgUrl', imgUrl);formdata.append('ranStr', ranStr);const options = {method: 'POST',body: formdata,};fetch(host + '/wp-content/plugins/tinymceSet/' + 'api.php', options).then(data => {return data.json();}).then(res => {console.log('res', res);if (res && res.imgDomainUrl) {resolve(res)}})})` }
在插件目录下新建api.php
使用$_POST['xxx']获取参数
使用并打开保存图像文件
评论区(暂无评论)