Диалоговое окно JQuery UI с использованием URL-адреса iframe
Я использовал nyroModal и Fancybox в качестве инструментов для веб-сайтов, но в этом случае я должен использовать инструмент диалога JQuery UI. Мне нужен этот диалог для загрузки страницы. Я считаю, что я делал это раньше, но все, с чем я сталкиваюсь, кажется более сложным, чем должно быть. Не могу ли я использовать что-то вроде...
$( "#dialog" ).dialog({
autoOpen: false,
modal: true,
url: http://www.google.com
});
<button id="dialog">Open Dialog</button>
и открыть страницу в простом iframe? Спасибо заранее.
Я обнаружил, что у меня есть этот код,
<script>
//$.fx.speeds._default = 500;
$(function() {
$( "#dialog" ).dialog({
autoOpen: false,
show: "fade",
hide: "fade",
modal: true,
open: function () {$(this).load('nom-1-dialog-add-vessels.html');},
height: 'auto',
width: 'auto',
resizable: true,
title: 'Vessels' });
$( "#opener" ).click(function() {
$( "#dialog" ).dialog( "open" );
return false;
});
});
</script>
<div id="dialog"></div><button id="opener">Open Dialog</button>
но не загружает фактическую страницу.
Ответы
Ответ 1
url
не является одним из параметров в диалоговом окне jQuery UI.
Одна из вещей, которая сработала для меня, - это иметь iframe
внутри div
, который является вашим диалогом, и установить его свойство url в событии open
.
Как
<div id="dialog">
<iframe id="myIframe" src=""></iframe>
</div>
<button id="dialogBtn">Open Dialog</button>
И JS:
$("#dialog").dialog({
autoOpen: false,
modal: true,
height: 600,
open: function(ev, ui){
$('#myIframe').attr('src','http://www.jQuery.com');
}
});
$('#dialogBtn').click(function(){
$('#dialog').dialog('open');
});
Вы обнаружите, что вам нужен стиль для iframe, чтобы он выглядел неплохо.
#myIframe{
height: 580px;
}
EDIT: Рабочая версия - http://jsbin.com/uruyob/1/edit
Ответ 2
На основе Floyd Pink и вашего кода я укрепил код. Проверьте http://jsfiddle.net/Nz9Q8/
$(function () {
$("#dialog").dialog({
autoOpen: false,
show: "fade",
hide: "fade",
modal: true,
open: function (ev, ui) {
$('#myIframe').src = 'http://www.w3schools.com';
},
height: 'auto',
width: 'auto',
resizable: true,
title: 'Vessels'
});
$("#opener").click(function () {
$("#dialog").dialog("open");
return false;
});
});
Ответ 3
Я попробовал аналогичную вещь. Проверьте http://jsfiddle.net/P2Q5U/
<div id="dialogContent" title="Basic dialog">
<iframe src="http://www.w3schools.com"></iframe>
</div>
<button id="dialog">Open Dialog</button>
$(function () {
$("#dialogContent").dialog({
autoOpen: false,
modal: true
});
$('#dialog').click(function () {
$("#dialogContent").dialog( "open" );
});
});