您好,欢迎访问一九零五行业门户网

通过js脚本复制网页上的一个表格的不错实现方法_javascript技巧

今天有人问我一个问题:如何通过js脚本复制网页上的一个表格?看起来似乎比较有难度,不过还是搞定了,顺便把解决这个问题的过程记录下来,希望能对写脚本的兄弟们有所帮助。
以前没有写过这种脚本,不过想起来前不久刚看到一个脚本可以实现全选html编辑器的内容,于是想到一个方案:使用脚本将该表格插入html编辑器中,然后全选html编辑器内容,执行html编辑器的复制命令,即可实现复制表格功能,很快搞定:
测试 测试表格 测试表格
测试表格 测试表格
文字
); // 初始化编辑器 editor.document.body.innerhtml = obj.outerhtml; editor.document.body.createtextrange().select(); // 选中编辑器内所有内容 editor.document.execcommand(copy,,null); // 复制 } function pastclipboarddata() { editor.focus(); editor.document.execcommand(paste,,null); // 粘贴 } //-->
[ctrl+a 全选 注:如需引入外部js需刷新才能执行]
这样子功能是实现了,不过觉得有点不爽,必须借助html编辑器才可,不过从全选html编辑器的代码中,注意到了createtextrange()方法,这个方法以前就有用过,只是一直没深入研究过。在msdn中发现只有body、textarea等对象支持createtextrange()方法,继续在msdn中仔细查阅了一下,createtextrange()返回的是一个 textrange 对象,继续查阅 textrange 对象,发现其有很多方法,先试了试findtext方法,发现只能选中文字,不能选中对象,继续找,终于发现了movetoelementtext就是我们要找的方法:
测试 测试表格 测试表格
测试表格 测试表格
文字
[ctrl+a 全选 注:如需引入外部js需刷新才能执行]
类似于这样的问题,可以想想以前有无写过见过类似的代码,如果没有也可以网上用关键字搜索一把,直接利用现有知识解决。msdn是一个非常好的宝库,就如小学学汉字的字典一样,从里面可以找到绝大部分所需要的资料。正应了那句话,自己动手丰衣足食:)
其它类似信息

推荐信息