Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как открыть пустую вкладку и записать в нее html? (https://javascript.ru/forum/misc/73767-kak-otkryt-pustuyu-vkladku-i-zapisat-v-nee-html.html)

maxminimus 13.05.2018 11:41

Как открыть пустую вкладку и записать в нее html?
 
На десктопных браузерах работает нормально,
в мобильных не пойму почему не работает:

var html = 'html-документ...'

var вкладка = window.open("about:blank")
вкладка.onload = function()
            {    
                вкладка.document.write(html)
            }



Действие запускается по нажатию кнопки пользователем.

ruslan_mart 13.05.2018 13:02

var html = 'html-документ...'

window.open('data:text/html,' + encodeURIComponent(html));

maxminimus 13.05.2018 13:16

ruslan_mart, спасибо, но не работает.
На десктопе работает, в мобильных нет.

Ты тестировал этот код на мобильных?

ruslan_mart 13.05.2018 13:39

maxminimus, safari?

maxminimus 13.05.2018 14:11

ruslan_mart, на десктопе - фаерфокс 48
на ios - хром, опера-коаст, фаерфокс

сафари вообще не использую - на ios даже вкладку не создает гадина

ruslan_mart 13.05.2018 14:18

Не могу проверить сейчас.

Попробуйте вывести alert внутри onload, может он вовсе там не отрабатывает на пустых вкладках.

Если отрабатывает, то попробуйте поэкспериментировать с динамическим добавление элементов:

var popup = window.open();

popup.addEventListener('load', function() {
   var div = document.createElement('div')'
   div.innerHTML = 'Hello world!';
   document.body.appendChild(div);
});

maxminimus 13.05.2018 15:50

ruslan_mart, сделал так:


var вкладка = window.open("about:blank")
вкладка.onload = function()
            {    
                alert(0)
            }


алерт выскакивает в основном окне а не во вкладке

Nexus 14.05.2018 15:44

maxminimus,
var вкладка = window.open("about:blank")
вкладка.onload = function() {
    вкладка.alert(0);
}

рони 14.05.2018 16:38

:write:
var вкладка = window.open("about:blank");
вкладка.document.open();
вкладка.document.write("<script>alert(0)</sc");
вкладка.document.write("ript>");
вкладка.document.close()

maxminimus 14.05.2018 18:02

рони, спс, заработало!


Часовой пояс GMT +3, время: 01:25.