单击按钮时如何克隆 html 页面
how to clone html page when button cllick
如何在单击
时在新的_空白页面中克隆 html
btn_change_folder_style_seg
btn_change_folder_style_raw
那么内容将是
<img src="./pic/web_show/3_seg/01.jpg" alt="">
<img src="./pic/web_show/3_seg/02.jpg" alt="">
和
<img src="./pic/web_show/3_raw/01.jpg" alt="">
<img src="./pic/web_show/3_raw/02.jpg" alt="">
现在完整代码
<img src="./pic/web_show/3/01.jpg" alt="">
<img src="./pic/web_show/3/02.jpg" alt="">
<img src="./pic/web_show/3/03.jpg" alt="">
<input type="button" id="btn_change_folder_style_seg" value="style seg"></input>
<input type="button" id="btn_change_folder_style_raw" value="style raw"></input>
<script>
$(function() {
$('#btn_change_folder_style_seg').click(function() {
alert("style_seg")
var imagePath = $('img');
imagePath.attr('src', function(index, attr) {
if (attr) {
return attr.replace('3/', index + 1 + '_seg/');
}
});
});
$('#btn_change_folder_style_raw').click(function() {
alert("style_raw")
var imagePath = $('img');
imagePath.attr('src', function(index, attr) {
if (attr) {
return attr.replace('3/', index + 1 + '_raw/');
}
});
});
})
</script>
首先需要select HTML标签,然后通过cloneNode(true)方法复制它,复制它的children必须加上true
然后您可以根据需要编辑克隆的 HTML(删除 elm - 编辑 elm 等等)
因此你必须通过 (.outerHTML)
将其转换为字符串
之后,您必须创建一个新的 Blob 对象实例并在其中附加字符串化内容并添加您的文件类型
const file = new Blob([content], {type: 'text/html'});
那么您将需要锚标记来创建您 HTML 文件 link 的下载
a.href = URL.createObjectURL(file);
如果您点击按钮标签,则触发锚标签被点击
这就是我希望这段代码能进一步阐明我的答案的全部内容
// select button
const btn = document.getElementById('btn');
// add click event
btn.addEventListener('click', () => {
// Select anchor
const a = document.getElementById('a');
// select html tag
const html = document.querySelector('html');
// clone html
const clonedHtml = html.cloneNode(true);
// select elements
const body = clonedHtml.querySelector('body');
// wipe out body
body.innerHTML = '';
// create div
const div = document.createElement('div');
// add text
div.innerText = 'new div';
// append div
body.append(div);
//* append to content
let content = `<!DOCTYPE html>`;
content += clonedHtml.outerHTML;
console.log(content);
// create HTML file
let file = new Blob([content], {
type: 'text/html'
});
// add href link
a.href = URL.createObjectURL(file);
// name file
a.download = 'New.html';
// run click
a.click();
});
<div class="div1">1</div>
<div class="div2">2</div>
<button type="button" id="btn">Generate HTML file</button>
<a id="a" href="" style="display: none;"></a>
如何在单击
时在新的_空白页面中克隆 htmlbtn_change_folder_style_seg
btn_change_folder_style_raw
那么内容将是
<img src="./pic/web_show/3_seg/01.jpg" alt="">
<img src="./pic/web_show/3_seg/02.jpg" alt="">
和
<img src="./pic/web_show/3_raw/01.jpg" alt="">
<img src="./pic/web_show/3_raw/02.jpg" alt="">
现在完整代码
<img src="./pic/web_show/3/01.jpg" alt="">
<img src="./pic/web_show/3/02.jpg" alt="">
<img src="./pic/web_show/3/03.jpg" alt="">
<input type="button" id="btn_change_folder_style_seg" value="style seg"></input>
<input type="button" id="btn_change_folder_style_raw" value="style raw"></input>
<script>
$(function() {
$('#btn_change_folder_style_seg').click(function() {
alert("style_seg")
var imagePath = $('img');
imagePath.attr('src', function(index, attr) {
if (attr) {
return attr.replace('3/', index + 1 + '_seg/');
}
});
});
$('#btn_change_folder_style_raw').click(function() {
alert("style_raw")
var imagePath = $('img');
imagePath.attr('src', function(index, attr) {
if (attr) {
return attr.replace('3/', index + 1 + '_raw/');
}
});
});
})
</script>
首先需要select HTML标签,然后通过cloneNode(true)方法复制它,复制它的children必须加上true
然后您可以根据需要编辑克隆的 HTML(删除 elm - 编辑 elm 等等)
因此你必须通过 (.outerHTML)
将其转换为字符串之后,您必须创建一个新的 Blob 对象实例并在其中附加字符串化内容并添加您的文件类型
const file = new Blob([content], {type: 'text/html'});
那么您将需要锚标记来创建您 HTML 文件 link 的下载
a.href = URL.createObjectURL(file);
如果您点击按钮标签,则触发锚标签被点击
这就是我希望这段代码能进一步阐明我的答案的全部内容
// select button
const btn = document.getElementById('btn');
// add click event
btn.addEventListener('click', () => {
// Select anchor
const a = document.getElementById('a');
// select html tag
const html = document.querySelector('html');
// clone html
const clonedHtml = html.cloneNode(true);
// select elements
const body = clonedHtml.querySelector('body');
// wipe out body
body.innerHTML = '';
// create div
const div = document.createElement('div');
// add text
div.innerText = 'new div';
// append div
body.append(div);
//* append to content
let content = `<!DOCTYPE html>`;
content += clonedHtml.outerHTML;
console.log(content);
// create HTML file
let file = new Blob([content], {
type: 'text/html'
});
// add href link
a.href = URL.createObjectURL(file);
// name file
a.download = 'New.html';
// run click
a.click();
});
<div class="div1">1</div>
<div class="div2">2</div>
<button type="button" id="btn">Generate HTML file</button>
<a id="a" href="" style="display: none;"></a>