Этот скрипт работает для сохранения текущего URL-адреса в файл:
<script type = "text/javascript">
setTimeout("create(window.location.href, 'file.html', 'text/plain')");
function create(text, name, type) {
var dlbtn = document.getElementById("save");
var file = new Blob([text], {type: type});
save.href = URL.createObjectURL(file);
save.download = name;
}
</script>
<a href = "javascript:void(0)" id = "save"><button>SAVE</button></a>
Но мне нужно, чтобы готовый файл выглядел так:
<script type = "text/javascript">
window.location.href = "CURRENT URL GOES HERE";
</script>
Использование простого литерала шаблона делает свое дело. Я также изменил setTimeout()
, чтобы он был обратным вызовом вместо строки, и имел задержку 0 вместо подразумеваемого 0. Еще одна вещь, которую я изменил, — это тип с text/plain
на text/html
.
<script type = "text/javascript">
setTimeout(() => create('file.html', 'text/html'), 0); // type needs to be text/html to save as an HTML file and not a txt file
function create(name, type) {
var dlbtn = document.getElementById("save");
// Template literal
const text = `<script type = "text/javascript">
window.location.href = "${window.location.href}";
</scri${"pt"}>` // Have to do the ${"pt"} to fix HTML wanting to close the script tag
var file = new Blob([text], {type: type});
dlbtn.href = URL.createObjectURL(file);
dlbtn.download = name;
}
</script>
<a href = "javascript:void(0)" id = "save"><button>SAVE</button></a>