я хочу добавить кнопку для загрузки моего исходного кода html веб-страницы, я смог это сделать, но проблема в том, что когда я добавляю URL-адрес локального хоста, он работает, но когда я добавляю живой URL-адрес, он открывает URL-адрес вместо его загрузки. пока я пробовал это
<a download href = "http://localhost/test-new/">Download Source Code</a>
я тоже пробовал это
<button onclick = "clicker()">Click me</button>
<script type = "text/javascript">
function clicker() {
var anchorTag = document.createElement('a');
anchorTag.href = "http://localhost/test-new/";
anchorTag.download = "download";
anchorTag.click();
var element = document.getElementById('divContainer');
element.appendChild(anchorTag);
}
</script>
оба они работают на локальном хосте, но не для живого URL-адреса. пожалуйста, помогите мне



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете использовать
document.querySelectorAll('*')
получить исходный код веб-страницы
console.info(document.querySelectorAll('*'))это не сработало для меня
Этот код должен работать.
НО есть одно основное ограничение, которое может помешать вам скачивать другие страницы - Политика CORS. Вы не можете получить данные из другого домена, если эта политика не разрешает это. Современные браузеры ограничивают это из соображений безопасности.
Но если скачать текущую страницу, то проблем не встанет. Просто посмотрите на вывод консоли Dev-Tools для ошибки:
Access to fetch at 'URL_HERE' from origin has been blocked by CORS...
const btn = document.querySelector('.download-btn');
btn.addEventListener('click', (e) => clicker(e.currentTarget.dataset.url), false);
function clicker(url) {
fetch(url)
.then(res => res.text())
.then(html => downloadAsFile('My file name.txt', html));
}
function downloadAsFile(name, text) {
const link = createDownloadableLink(name, text);
const clickEvent = new MouseEvent('click');
link.dispatchEvent(clickEvent);
}
function createDownloadableLink(fileName, content) {
let link = document.createElement("a");
link.download = fileName;
link.href = `data:application/octet-stream,${content}`;
return link;
}<button
class = "download-btn"
data-url = "http://localhost:1234/"
>Click me if CORS allow</button>
попробуйте отправить
ajax requestи написать документ для перекрестного происхождения