我使用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>
但它没有加载实际页面。
答案 0 :(得分:32)
url
不是jQuery UI dialog中的选项之一。
对我有用的一件事就是在你的对话框iframe
内加div
,并在open
事件上设置其url属性。
像:
<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;
}
编辑:工作版本 - http://jsbin.com/uruyob/1/edit
答案 1 :(得分:3)
基于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;
});
});
答案 2 :(得分:0)
<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" );
});
});