Как открыть пустую вкладку и записать в нее html?
На десктопных браузерах работает нормально,
в мобильных не пойму почему не работает: var html = 'html-документ...' var вкладка = window.open("about:blank") вкладка.onload = function() { вкладка.document.write(html) } Действие запускается по нажатию кнопки пользователем. |
var html = 'html-документ...' window.open('data:text/html,' + encodeURIComponent(html)); |
ruslan_mart, спасибо, но не работает.
На десктопе работает, в мобильных нет. Ты тестировал этот код на мобильных? |
maxminimus, safari?
|
ruslan_mart, на десктопе - фаерфокс 48
на ios - хром, опера-коаст, фаерфокс сафари вообще не использую - на ios даже вкладку не создает гадина |
Не могу проверить сейчас.
Попробуйте вывести alert внутри onload, может он вовсе там не отрабатывает на пустых вкладках. Если отрабатывает, то попробуйте поэкспериментировать с динамическим добавление элементов: var popup = window.open(); popup.addEventListener('load', function() { var div = document.createElement('div')' div.innerHTML = 'Hello world!'; document.body.appendChild(div); }); |
ruslan_mart, сделал так:
var вкладка = window.open("about:blank") вкладка.onload = function() { alert(0) } алерт выскакивает в основном окне а не во вкладке |
maxminimus,
var вкладка = window.open("about:blank") вкладка.onload = function() { вкладка.alert(0); } |
:write:
var вкладка = window.open("about:blank"); вкладка.document.open(); вкладка.document.write("<script>alert(0)</sc"); вкладка.document.write("ript>"); вкладка.document.close() |
рони, спс, заработало!
|
maxminimus, скорей всего проблема в том, что максимум за пол секунды до window.open, обязательно должен быть совершено какое-то реальное действия от пользователя (например, клик). Видимо Вы этого не учитываете.
|
Работает.
<button id="button">CLICK</button> <script> button.onclick = function() { var win = window.open(); win.alert('HELLO!') }; </script> ![]() |
ruslan_mart, у меня на онклик назначена функция которая проверяет id кнопки и запускает другую функцию в которой этот кусок кода.
То есть по времени это мгновенно, но возможно да, причина в том что не внутри онклика всё сделано как в твоем примере последнем, Проверить времени нет )) Спасибо! |
Часовой пояс GMT +3, время: 17:54. |