流程 :
- 获取html标签内容
- 转成blob 对象
- 添加模拟事件
<!DOCTYPE html>
<!-- demo -->
<html>
<head>
<meta charset="UTF-8">
<title>网页HTML存本地</title>
<script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
</head>
<body>
<a href="#">保存文件</a>
<script>
// 事 件 模 拟
/**
*对象 URL 也被称为 blob URL,指的是引用保存在 File 或 Blob 中数据的 URL。使用对象 URL 的
*好处是可以不必把文件内容读取到 JavaScript 中而直接使用文件内容。为此,只要在需要文件内容的地
*方提供对象 URL 即可。要创建对象 URL,可以使用 window.URL.createObjectURL() 方法,并传入
*File 或 Blob 对象。
*/
function fake_click(obj) {
var ev = document.createEvent("MouseEvents");
// 初始化事件对象
ev.initMouseEvent(
"click", true, false, window, 0, 0, 0, 0, 0
, false, false, false, false, 0, null
);
// 触发事件
obj.dispatchEvent(ev);
}
function export_raw(name, data) {
var urlObject = window.URL || window.webkitURL || window;
var export_blob = new Blob([data]);
// XHTML 的命名空间是 http://www.w3.org/1999/xhtml
var save_link = document.createElementNS("http://www.w3.org/1999/xhtml", "a")
save_link.href = urlObject.createObjectURL(export_blob);
save_link.download = name;
fake_click(save_link);
}
var test=document.getElementsByTagName('html')[0].outerHTML;
$('a').click(function() {
export_raw('test.xls', test);
});
</script>
</body>
</html>