使用书签将JSON转化成表格,可复制到Excel

2025-04-24 08:47:23

1、bookmarklet其实就是一个收藏夹,其中网址部分是javascript代码。

使用书签将JSON转化成表格,可复制到Excel

2、值得注意的是所有的bookmarklet都要按这个种格式来:javascript:(fun罕铞泱殳ction()撑俯擂摔{……})()。在这里的设略号就是用户自己写的代码来实现的功能区。我们写一个名称:test;网址:javascript:(function(){alert('hello')})()。我们来运行下刚才写的这个bookmarklet。会弹出一个对话框显示“hello”

使用书签将JSON转化成表格,可复制到Excel

3、我们既然知道了原理那么就可以利用它来实现更高级一点的功能——实现json转化成表格。

使用书签将JSON转化成表格,可复制到Excel

4、首先我们来写一段代码给数组的原型添加一个toTable的方法。toTable实现了把数据中的集合对象转变成“<table>……</table>”的字符串。

使用书签将JSON转化成表格,可复制到Excel

5、接下来我们是要实现是通过正则提取JSON,并凸鹣沮北把它转化成数组。正则提取的部分关键点是:document.body.innerHTML.match(/\[.*?\]/igm)[0]。其中/\[.*?\]/igm是一个正则表达。关于正则表达什么写,这个不做细说,自行百度。正则提取的结果是一个字符串:”[……]”。想要把这个结果变成数组需要执行eval函数。这个函数的用法是:eval('(' + document.body.innerHTML.match(/\[.*?\]/igm)[0] + ')')。之后我们就可以用toTable方法了。

使用书签将JSON转化成表格,可复制到Excel

6、我们聪艄料姹再执行完toTable的方法之后返回的结果是“<table>……</table>”,我们希望做的是把这个段代码写到一个DIV元素中,那么这个DIV元素就会有一个漉胜衲仰表格元素。我们只要把这个DIV的布局布置在页面顶层,以带有透明的遮罩形式呈现即可。完整的代码:javascript:(function(a,b,c){Array.prototype.toTable=function(){var ar=[];var tab='';var th="";for(i in this[0]){ar.push(i)};th="<tr><th>"+ar.join('</th><th>')+"</th></tr>";this.forEach(function(a){var b=[];for(i in a){b.push(a[i])}tab+="<tr><td>"+b.join('</td><td>')+"</td></tr>"});return("<table border='1px' >"+th+tab+"<table>")};c=b.createElement('div'),c.id='excel',c.setAttribute('style','position:absolute;top:0;left:0;right:0;background:yellow;opacity:0.8'),c.innerHTML=eval('('+document.body.innerHTML.match(/\[.*?\]/igm)[0]+')').toTable(),b.body.appendChild(c)})(window,document);

使用书签将JSON转化成表格,可复制到Excel

7、新建一个bokmarklet,把第六步的代码复制到网址中。

使用书签将JSON转化成表格,可复制到Excel

8、单击texst,即可得到结果。

使用书签将JSON转化成表格,可复制到Excel
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢