2013-09-27 13 views
2

Мне интересно, могу ли я показать полную html-страницу пользователю в всплывающем окне javascript. От complete html Я имею в виду html-код с его собственной кодировкой, головой и телом. Это собственные шрифты, стили, сценарии и т. Д.Показывать full-html (meta, head, body) во всплывающем окне

Также скажите, что моя «главная» страница имеет utf8. Возможно ли, что кодирование всплывающего содержимого будет чем-то другим? (обратите внимание, что я не спрашиваю, как декодировать из X, а затем закодировать до utf8, но фактически показывая другой кодированный контент).

Если это невозможно, каков наилучший способ показать полную html-страницу пользователю без оставления фактической страницы?

Редактировать: Может быть, идет с методом iframe, но я не уверен, могу ли я написать свой html в iframe. Обратите внимание, что к моменту, когда я хочу показать всплывающее окно для пользователя, у меня уже есть данные html, которые я хочу ему показать, поэтому мне не нужно делать никаких дополнительных запросов.

Edit:

Пример (псевдо-код - Javascript)

$(document.ready(){ 

    $.showPopup({ 
     content: "<!doctype html><meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'><head></head><body>Hi!</body></html>"; 
    }): 

}); 
+0

Какой метод вы хотите, чтобы открыть всплывающее окно с? – Mike

+0

Неважно, насколько это работает. Это могут быть простые js, jquery, kendo, dojo или что-то еще, что вы говорите, чтобы это работало. – alexandernst

+0

Вы можете открыть любую страницу с помощью 'window.open();', в качестве новой вкладки, используя ссылку с 'target =" _ blank "или в' iframe'. Кодирование не имеет значения. Каждая страница может иметь различную кодировку. – Mike

ответ

1

Вы можете использовать jquery для получения объекта javascript [0] и переписать Все содержание:

Демо: http://jsfiddle.net/NrJap/1/

var target = $('#myiframe').contents()[0]; 
target.open(); 
target.write("<!doctype html><meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'><head></head><body>Hi!</body></html>"); 
target.close(); 

Просто включить, что в плагин/функция для вашего $ .popup

+0

У меня проблема с http://jsfiddle.net/NrJap/2/ <--- всплывающее окно показывает iframe, но внутри него нет содержимого. Любые идеи, почему это может быть? – alexandernst

+0

О, неважно, это было из-за порядка звонков;) – alexandernst

1

Вы можете написать произвольное содержимое HTML в IFRAME, как это:

var iframe = document.getElementById('iframe'), 
    iframeDoc = iframe.contentWindow.document || iframe.contentDocument; 

iframeDoc.open(); 
iframeDoc.write(data); 
iframeDoc.close(); 

Пример: http://jsfiddle.net/jTcuK/1/

-2

для просмотра простой HTML код, который вы могли бы просто предупредить его ...

alert("<!doctype html><meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'><head></head><body>Hi!</body></html>"); 

или вы можете использовать кнопку просмотра исходного кода

http://css-tricks.com/make-a-view-source-button/

http://css-tricks.com/examples/ViewSourceButton/#

+0

То есть * так * много не то, что я прошу ... – alexandernst

+0

обновленный ответ! Я неправильно понял тебя, мой друг. Я думал, вам нужно всего лишь отобразить html для отладки или что-то подобное, а не для клиента. –

+0

Вы не понимаете, о чем я прошу. Я не хочу показывать исходный код пользователю и не показывать ему предупреждение – alexandernst

Смежные вопросы