Показать сообщение отдельно
  #4 (permalink)  
Старый 20.04.2021, 18:59
Кандидат Javascript-наук
Отправить личное сообщение для Was-Ja Посмотреть профиль Найти все сообщения от Was-Ja
 
Регистрация: 20.09.2020
Сообщений: 130

Позвольте, пожалуйста, поднять эту же тему.

Обсуждаемый пример классно работает, но от юзеров пришел отзыв, что они ассоциируют линк со внешним ресурсом, а у меня новый ТАБ генерится внутри JS и без необходимости что-то качать по интернету.

То есть теперь хочется, чтобы ТАБ открывался не по нажатию ссылки, а по нажатию кнопки.

А попробовал в лоб заменить, и у меня не получилось, попробовал поместить линк внутрь кнопки - тоже как-то не красиво...

<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="Content-type" content="text/html; charset=utf-8" lang="ru">
  <meta name="viewport" content="width=device-width, initial-scale=1.0" >
</div>
<button><a id=link  target="_blank" >Открыть новую вкладку</a></button>
<script>
// Это текст новой страницы
 let page=`
<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="Content-type" content="text/html; charset=utf-8" lang="ru">
  <meta name="viewport" content="width=device-width, initial-scale=1.0" >
<style>
h3 {
    color:red;
}
</style>
<s`+`cript>
window.onload = function () {
    alert ('Вот. Сгенегили, открыли, вывели!')
}
</`+`script>
 </head>
 <body>
 <h3>New page</h3>
  Всякое бла-бла-бла<br>
 Очень много бла-бла-бла<br>
 Опять бла-бла-бла<br>
</body>
</html>
 `;  // конец текста сраницы
 // По клику на <a> формируем ему href
 document.getElementById('link').addEventListener('click', function () {
    let blob = new Blob([page], {type : 'text/html'});
    this.href = window.URL.createObjectURL(blob)
})
</script>
</body>
</html>


Пожалуйста, подскажите, можно ли у кнопки как-то свойство href создать, чтобы такой ТАБ открыть?

Спасибо!
Ответить с цитированием