纯情博客为您提供最新网络安全黑客博客信息资讯

  

 $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] = ranStr            imgArr[i].ranStr = ranStr            imgArr[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.origin        return 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']获取参数

  使用并打开保存图像文件