如何使用Javascript中的外部文件创建模式弹出窗口?
我目前正在一个网站上工作,我想用JavaScript创建一个模式弹出窗口。问题是,我想从一个单独的.html文件中提取窗口的内容,而不是从页面上的隐藏div中提取(这就是我所看到的大多数示例向您展示的方法) 如果有人能为我指明正确的方向,告诉我如何实现这一点,我将不胜感激 提前谢谢如何使用Javascript中的外部文件创建模式弹出窗口?,javascript,Javascript,我目前正在一个网站上工作,我想用JavaScript创建一个模式弹出窗口。问题是,我想从一个单独的.html文件中提取窗口的内容,而不是从页面上的隐藏div中提取(这就是我所看到的大多数示例向您展示的方法) 如果有人能为我指明正确的方向,告诉我如何实现这一点,我将不胜感激 提前谢谢 Matt D假设HTML文件与站点位于同一个域中(因为跨域请求不起作用),您可以启动Ajax请求来检索数据并将其插入包含的元素中 尽管您不需要使用jQuery(或任何其他库)来处理Ajax请求和响应,但它使处理跨浏览
Matt D假设HTML文件与站点位于同一个域中(因为跨域请求不起作用),您可以启动Ajax请求来检索数据并将其插入包含的元素中 尽管您不需要使用jQuery(或任何其他库)来处理Ajax请求和响应,但它使处理跨浏览器细微差别变得更加容易 您可以这样做(假设myModel的显示为none):
举个简单的例子,但这应该可以做到。您可以在API页面上看到更深入的jQuery示例。假设HTML文件与站点位于同一个域中(因为跨域请求不起作用),您可以启动Ajax请求来检索数据并将其插入包含的元素中 尽管您不需要使用jQuery(或任何其他库)来处理Ajax请求和响应,但它使处理跨浏览器细微差别变得更加容易 您可以这样做(假设myModel的显示为none):
举个简单的例子,但这应该可以做到。您可以在API页面上看到更深入的jQuery示例。您可以使用iframe在弹出窗口中显示另一个页面。您可以使用iframe在弹出窗口中显示另一个页面。Tom的建议很好。您还可以使用jQuery的load(http://api.jquery.com/load/)将html直接转换为元素的函数:
$(modelContainerId).load(pathToHtml+ " #sectionOfHtml", function (response, status, xhr) {
$.blockUI({
message: $(modelContainerId),
css: {
border: 'none',
padding: '15px',
backgroundColor: '#000',
'-webkit-border-radius': '10px',
'-moz-border-radius': '10px',
opacity: .9,
color: '#fff',
top: ($(window).height() - 700) / 2 + 'px',
left: ($(window).width() - 700) / 2 + 'px',
width: '700px',
cursor: 'pointer'
}
});
$('.blockOverlay').attr('title', 'Click to unblock').click($.unblockUI);
});
这里
.load(pathToHtml+“#sectionOfHtml”
只从加载的html中加载名为#sectionOfHtml
的id。我使用此功能以上下文敏感的方式加载不同的帮助页面。Tom的建议很好。您也可以使用jQuery的load(http://api.jquery.com/load/)将html直接转换为元素的函数:
$(modelContainerId).load(pathToHtml+ " #sectionOfHtml", function (response, status, xhr) {
$.blockUI({
message: $(modelContainerId),
css: {
border: 'none',
padding: '15px',
backgroundColor: '#000',
'-webkit-border-radius': '10px',
'-moz-border-radius': '10px',
opacity: .9,
color: '#fff',
top: ($(window).height() - 700) / 2 + 'px',
left: ($(window).width() - 700) / 2 + 'px',
width: '700px',
cursor: 'pointer'
}
});
$('.blockOverlay').attr('title', 'Click to unblock').click($.unblockUI);
});
此处.load(pathToHtml+“#sectionOfHtml”
仅从加载的html中加载名为#sectionOfHtml
的id。我使用此功能以上下文敏感的方式加载不同的帮助页面。如果使用jQuery(您应该这样做)
注意:本例使用jQuery 1.5新的“延迟”语法。如果使用早期函数,则将处理程序作为参数传递给$。根据需要获取。如果使用jQuery(您应该这样做)
注意:本例使用jQuery 1.5新的“延迟”语法。如果使用早期函数,则将处理程序作为参数传递给$。根据需要获取。并使用jQuery.UI的“dialog”函数将#myModel转换为模式对话框。使用jQuery.UI的“dialog”函数将#myModel转换为模式对话框。
var div = $('#myid'); // container for the content
$.get(url) // get the content
.success(function(resp) { // on success
$(div)
.html(resp) // populate the div
.dialog({ modal: true }); // and turn it into a dialog
});