将网页另存为Html错误

时间:2015-10-19 12:00:31

标签: javascript jquery html ajax filesaver.js

我正在使用此https://github.com/eligrey/FileSaver.js将网页另存为html。

以下代码在用户点击下载时执行 -

var originalstr=$.ajax(
{
    type: "GET",         
    url:"url",
    async: false 

}).responseText  ;
var  str = $(originalstr).find('.toolbar').remove().end();
saveAs(new Blob([ str], {type: "text/html;charset=utf-8"}), "Plan_Enrollment_Show_All.HTML");

我得到了回复,我正在删除一个带有类名"工具栏"的div标签。然后我发送它作为FileSaver.js的函数。

我正在使用" [object Object]"作为下载的内容文件。

如果我不进行任何修改并通过原件,那么我会得到正确的输出。对此有何帮助?

我已经使用了转义的html并尝试通过删除div来构建html并且它有效。为了逃避html我使用了这个http://www.freeformatter.com/javascript-escape.html#ad-output,但是当我尝试使用javascript的escape()函数进行转义时,我会得到不同的响应。

使用课程删除标签的演示 - https://jsfiddle.net/SkyTreasure/zfzocuf2/

1 个答案:

答案 0 :(得分:0)

据我所知,即使操纵了$ s变量,你也需要数据/表。我想正如所指出的那样,你必须说出必须显示哪些内容。在这种情况下," div或table"两者都会给出相同的结果。但是,另一个好处是克隆HTML内容(outerHTML函数)。

$.fn.outerHTML = function() {
  return $('<div />').append(this.eq(0).clone()).html();
};

var $s = $(s).find('.a-IRR-toolbar').remove().end();
console.log($s);

var $t = $(s).find('.a-IRR-toolbar').remove().end().find("div").outerHTML();
console.log($t);

选中此JSFiddle

另一件事, $ t适用于大多数情况 -

var $t = $(s).find('.a-IRR-toolbar').remove().end().find("div");

var $t = $(s).find('.a-IRR-toolbar').remove().end().find("table");

var $t = $(s).find('.a-IRR-toolbar').remove().end().find("div").outerHTML();

var $t = $(s).find('.a-IRR-toolbar').remove().end().find("div").html();

以上所有值都给出了相同的结果。但是,实施的是一种很好的做法。

如果需要任何具体内容,请告诉我。