关于我
 

xjpvictor's Blog
小老鼠,上灯台,两只耳朵竖起来

Press This 修改版


各种折腾·wordpress

本文最后编辑于超过3704天以前,部分内容可能已经失效

wordpress自带一个书签工具,Press This,能很方便的截取网页文字,发布为web clip。但其实不很完善。

Press This 只能从原网页截取文字,所有的格式全部会丢失,比如本来是个列表,现在就只剩了文字。虽然会弹出编辑框,但还是麻烦点。

所以稍微修改一下这个书签工具,使得能保留html标签。当然一些比如javascript的标签还是会删除,同时删除id,class和类似onclick之类的属性。效果图

Press This Mod

代码

javascript:if(!window.location.origin){window.location.origin=window.location.protocol+'//'+window.location.hostname+(window.location.port?':'+window.location.port:'');}function getSelectionHtml(){var html='';if(typeof window.getSelection != 'undefined'){var sel=window.getSelection();if(sel.rangeCount){var container=document.createElement('div');for(var i=0,len=sel.rangeCount;i<len;++i){container.appendChild(sel.getRangeAt(i).cloneContents());}html=container.innerHTML;}}else if(typeof document.selection != 'undefined'){if(document.selection.type == 'Text'){html=document.selection.createRange().htmlText;}}function removeAttr(str){var s=['id','class','onclick','onload','onsubmit','onmouseout','onmouseover','onmousedown','onmouseup','jsaction'];for(var i=0;i<s.length;i++){str=str.replace(new RegExp('<([^>]* +)?'+s[i]+' *= *((%22[^%22]*%22)|(\'[^\']*\'))?( +[^>]*)?>','gi'),'<$1$5>');}return str;}return html?'Web Clip</p><div>'+removeAttr(html.replace(/<\/?(span|style|script|input|select|option|textarea)( +[^>]*)?>/gi,function (match,p1){var index={'span':'','style':'','script':'','input':'','select':'','option':'','textarea':''};return index[p1] != undefined?index[p1]:p1;})).replace(/<([^>]* +)?(href|src) *= *(%22|\')\//gi,'<$1$2=$3'+window.location.origin+'/').replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/[\r\n]+/g,'')+'</div><p style=\'padding-top:1em;margin-top:1em;border-top:1px solid #ccc;\'>Origin:\r':'';};var d=document,w=window,s=getSelectionHtml(),f='修改为自己的wordpress域名/wp-admin/press-this.php',l=d.location,e=encodeURIComponent,u=f+'?u='+e(l.href)+'&t='+e(d.title)+'&s='+e(s)+'&v=4';a=function(){if(!w.open(u,'t','toolbar=0,resizable=1,scrollbars=1,status=1,width=720,height=570'))l.href=u;};if (/Firefox/.test(navigator.userAgent)) setTimeout(a, 0); else a();void(0)

有些缺点,因为wordpress会自动在最前和最后添加<p>,所以只好在头尾添加一行文字,好在用来标注『截取』和『来源』也算合适。

另外wordpress只接受GET方式,所以截取内容太长就会出问题了。nginx下不能超过64KB。当然可以进一步改造成post方法,然后服务器上新建一个php,把post的数据改成get,再传给wordpress去处理。不过就不在我的考虑范围了。

同时如果来源网页中使用的是全局相对路径,会补完地址,但其他的相对路径还是需要人肉检查。

声明

需要特别提醒注意版权问题,请不要未经原作者许可摘抄分享,更不要去掉原文链接。全文摘录也是不提倡的,毕竟做笔记不是简单的抄录。

因为保留了html格式,所以原文中的图片等内容也会保留,如果原作者不允许分享,请手动删除。即使原作者许可,也希望手动保存原图片再上传到自己的服务器,避免盗链。

本文 "Press This 修改版" 由 K. Huang 首先发表于 xjpvictor's Blog 并以 CC BY-NC 4.0 许可证发布 © 2014
转载注明引用来源 https://blog.xjpvictor.info/2014/03/press-this-mod/


推广:使用 DigitalOcean 搭建属于你自己的博客,每月低至 5 美元,全球多数据中心,稳定高速

打赏我

评论

你的邮箱地址不会被公开。必填项以 * 标出

无意义或不相关评论将被删除

允许使用以下html标签:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

你可以上传文件,粘贴代码或长文至 Drop.it.r

本博客是言论不自由博客,评论只接受询问及赞同,不同观点请出门左转微博/发表于自己的博客。谢谢合作!

评论意味着你 同意 上传部分私人数据,包括邮箱和 IP, 这些数据不会被分享给第三方,不会用于商业用途或再推广用途。

更多相似文章