继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

利用JavaScript保存网页某部分内容到本地

迁就LOSE
关注TA
已关注
手记 6
粉丝 17
获赞 96

自从有了上次利用代码解决实际问题后,便无法自拔的想用代码去解决生活中遇到的问题。
  平时喜欢在网上找些简单开源项目看看,学习。此为背景。
今天无意中发现这个

 
每次打开网页都很麻烦,于是我就想着把这个表格保存到本地(原HTML),留着以后慢慢看。

  于是

var tab=document.getElementById("table_default"); 
//获取行数 
var rows=tab.rows; 
//遍历行 
for(var i=0;i<rows.length;i++) 
{ 
//遍历表格列 
for(var j=0;j<rows[i].cells.length;j++) 
{ 
    console.log(rows[i].cells[j].innerHTML);

//打印某行某列的值 
/*alert("第"+(i+1)+"行,第"+(j+1)+"列的值是:"+rows[i].cells[j].innerHTML);*/
 }
}
 alert("共有"+(i+1)*4+"个C#开源项目"); 

  OK,代码写完了,该保存了,然后谷歌了一波Javascript文件操作。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <script language="JavaScript"> 

var fso = new ActiveXObject("Scripting.FileSystemObject"); 
var file=fso.CreateTextFile("c:\\test\\test.txt", true); 
</script>
</head>
<body>

</body>
</html>


  Excuse Me?

  Chrome是基于Webkit的, ActiveXObject对象只能在IE下操作。

  好好好,IE就IE。

  Nice,成功!现在就写入内容吧。

var fso = new ActiveXObject("Scripting.FileSystemObject"); 
    var file=fso.CreateTextFile("c:\\test\\test.txt", true); 
    var tableInfo="";
        var tab = document.getElementById("table_default") ;
        for(var i=0;i<tab.rows.length;i++)
         {
            for(var j=0;j<tab.rows[i].cells.length;j++)
            {
                tableInfo += tab.rows[i].cells[j].innerText;   //获取Table中单元格的内容
                tableInfo += "   ";
            }
         }
          file.write(tableInfo);
          file.Close();

  最终效果如下:

  总结:这个IE还是不大安全的,这个所谓的 ActiveX插件居然可以和本地文件进行交互。另外,以后还是拿C#或者Java其他类型的语言实现这种功能,Javascript进行文件交互实在太麻烦了。

  我花在想代码的时间比复制粘贴多很多时间。

  在知乎上也看到了这个问题。你有哪些用计算机技能解决生活问题的经历?

打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP