Как загрузить текущую веб-страницу

я хочу добавить кнопку для загрузки моего исходного кода 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-адреса. пожалуйста, помогите мне

попробуйте отправить ajax request и написать документ для перекрестного происхождения

anjaneyulubatta505 18.07.2019 10:36
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
1
1 138
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете использовать

document.querySelectorAll('*')

получить исходный код веб-страницы

console.info(document.querySelectorAll('*'))

это не сработало для меня

abhishek kalotra 18.07.2019 09:48
Ответ принят как подходящий

Этот код должен работать.

НО есть одно основное ограничение, которое может помешать вам скачивать другие страницы - Политика 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>

Другие вопросы по теме