我正在使用此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/
答案 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();
以上所有值都给出了相同的结果。但是,实施的是一种很好的做法。
如果需要任何具体内容,请告诉我。