php 抓取网页生成图片(不如搞成一个一个按钮怎么切换模式,都不会再抓取复制代码里的图片)
优采云 发布时间: 2021-11-05 17:15php 抓取网页生成图片(不如搞成一个一个按钮怎么切换模式,都不会再抓取复制代码里的图片)
可能有人会认为ueditor已经添加了这个功能,复制的时候可以抓取内容中的图片保存到本地。但有时候,我们复制的不是网页的内容,而是代码。这时候ueditor傻眼了,认不出来了。无论你怎么切换模式,复制的代码中的图片都不会再被抓取。于是就有了这篇文章文章。
PS:我个人觉得复制网页内容会在未经发布者同意的情况下自动抓取内容中的图片,不好。最好做一个按钮,让发布者自己操作。
想法:
在编辑器上添加一个按钮并命名为:抓取远程图片,点击该按钮开始分析编辑器中的内容,然后开始抓取。这和我写Fckeditor抓远程图片的想法是一致的。
添加按钮:其实就是扩展。
根据ueditor的规则:要写扩展,需要指定文件名:addCustomizeButton.js。
在 addCustomizeButton.js 中编写以下代码:
UE.registerUI('button',function(editor,uiName){
//创建一个button
var btn = new UE.ui.Button({
//按钮的名字
name:'远程图片',
//提示
title:'获取远程图片',
//需要添加的额外样式,指定icon图标,这里默认使用一个重复的icon
cssRules :'background-position: -500px 0;',
//点击时执行的命令
onclick:function () {
//这里可以不用执行命令,做你自己的操作也可
//editor.execCommand(uiName);
editor.fireEvent("catchRemoteImage");
}
});
//当点到编辑内容上时,按钮要做的状态反射
editor.addListener('selectionchange', function () {
//editor.addListener('click', function () {
var state = editor.queryCommandState(uiName);
if (state == -1) {
btn.setDisabled(true);
btn.setChecked(false);
} else {
btn.setDisabled(false);
btn.setChecked(state);
}
});
//因为你是添加button,所以需要返回这个button
return btn;
}
/*index 指定添加到工具栏上的那个位置,默认时追加到最后,editorId 指定这个UI是那个编辑器实例上的,
默认是页面上所有的编辑器都会添加这个按钮*/);
这个文件必须在ueditor加载后加载。
影响:
点击这个“获取远程图片”按钮后的获取效果:
注:官方抓取远程图片后,PHP中使用return。奇怪的是,在其他地方使用了echo,所以我看到图片被捕获了,但没有替换。后来把返回的数据体改为Echo,然后返回空,就行了。
旧的Fckeditor2.6.6 已经不再兼容新的标准浏览器了,可惜改了很多方便的功能也费了不少功夫。唉,现在只能找到功能类似的编辑器,可以写技术文章。
如果你想要Fckeditor2.6.6,可以发邮件给宿主。