from: http://blog.sina.com.cn/s/blog_8a18c33d0100v5hb.html
除了使用实际的弹出窗口,还可以使用控制一个div的display属性来模拟一个弹出窗口的操作,这里使用在Div里放一个iFrame的方式,主要考虑到可以在需要的时候加载弹出窗口的内容,减少主窗口的数据量。通是还要考虑的一个问题就是用户在完成一次选择后,当重复打开选择框时,如何保存用户上次选择的状态:例如用户在弹出窗口中从A-E5个选项中选择了AB两个,当再次打开时,应该保证AB两个是选中的。首先来看弹出窗口的实现,html代码和脚本如下:
html
<div id="popup" style="border:1px solid #606060; width:320px; height:240px; display:none;">
<iframe id="myFrame" src="" style="width:100%;height:100%;"></iframe>
</div>
这里要注意iFrame的src属性留空了(其实默认值为about:blank),而且display属性为none,在弹出窗口没有打开时iFrame没有页面,div也不可见。
javascript
function fnPopup(){
document.getElementByIdx_x('popup').style.display='block';
window.frames[0].location.href="Dialog1.aspx";
}
这里用了window的frames对象,这个对象获取在当前页面中定义的frame或iFrame,当前页面只有一个iframe所以直接用window.frames[0]获取出对iframe的引用,通过设置location.href属性,就在iframe中打开希望的弹出窗口,同时设置div可见,则弹出窗口呈现给用户。
在iFrame的虚拟弹出窗口中,可以使用window.parent与父窗口进行交互了,弹出窗口中负责交互的部分代码如下:
function fnCloseWin(){
parent.document.getElementByIdx_x('uinput').value=document.getElementByIdx_x('uinput').value;
parent.document.getElementByIdx_x('popup').style.display='none';
}
完成交互后把 div隐藏,模拟弹出窗口关闭。现在要解决弹出窗口状态保存的问题。考虑有两种方案,第一种方案为用查询字符串把值传到弹出窗口中,由弹出窗口做相应的处理;后一种方案为用户完成选择后,只是隐藏弹出窗的div,下次再打开时只将div显示,而不重新加载页面,这样也可以实现状态的保存。但采用后一种方式,在主页面发生反送动作后,状态同样也会丢失(这是后一种方案的问题)。后一种方案的实现为在fnPopup函数中做如下修改:
function fnPopup(){
document.getElementByIdx_x('popup').style.display='block';
// 只有在第一次显示时加载页面
if(window.frames[0].location.href=='about:blank')
window.frames[0].location.href="Dialog1.aspx";
}
该种方案旨在说明如何在父窗口中判断子窗口的状态,具体的使用过程中还是使用查询字符串的方式更为理想。
相关推荐
div+iframe做出的弹出窗口,效果等同于模态窗口。弹出窗口可最大化、最小化,可拖拽。带遮罩功能。 解决替换模态窗口,避免模态调模态出现的一系列问题:session丢失,提交返回,调父类方法层级多了或者多页面调的...
在MVC架构下,实现iframe弹窗并进行值传递是一个常见的需求,特别是在需要在一个页面上显示或编辑独立的数据片段时。以下将详细介绍如何在ASP.NET MVC中实现这个功能。 1. **创建弹窗** 弹窗通常通过JavaScript或...
在前端开发过程中,DIV元素被IFRAME遮挡是一个常见的问题,尤其是当页面布局复杂或存在多层嵌套的元素时。以下将详细阐述几种DIV被IFRAME遮挡的情况,并提供相应的解决方法。 首先,要了解的是IFRAME是一种HTML元素...
根据提供的文件信息,本文将详细解释如何使用DIV+CSS实现一个美观且实用的弹出窗体,这种技术常用于创建类似QQ空间登录窗口的效果。本文将深入探讨代码中涉及的关键CSS样式、HTML结构以及简单的JavaScript交互逻辑。...
本文将详细介绍如何使用FancyBox实现弹窗视频的功能。 首先,我们需要了解jQuery和FancyBox的基础。jQuery是一个轻量级的JavaScript库,它简化了HTML文档遍历、事件处理、动画和Ajax交互。FancyBox则是在jQuery基础...
我们检查当前窗口是否在iframe内,如果是,我们将自定义的div层添加到iframe的body元素中,以确保它覆盖整个页面,而不仅仅是iframe的内容。 现在,你可以像使用原生alert一样使用这个自定义的弹出层: ```...
本文档将详细介绍一个基于 JavaScript (简称JS)、DIV 和 CSS 的实现方案,该方案不仅能够支持多种类型的弹窗展示(包括 iframe 内容),还特别注重于不同浏览器间的兼容性处理。 #### 二、核心知识点详解 ##### 1....
4. **事件处理**:通过绑定事件监听器,开发者可以实现弹窗打开、关闭、点击按钮等行为的自定义处理,增强了弹窗的交互性。 5. **兼容性**:考虑到浏览器兼容性,lhgdialog支持主流的现代浏览器,如Chrome、Firefox...
在本案例中,"div 通用弹窗"可能是指一个由朋友提供的,可以应用于多种场景的弹出窗口设计。 通用弹窗是一种常见的用户界面元素,通常用于显示警告、确认信息、提示或者进行表单输入等交互操作。它们通常是浮动的,...
总结,实现`javascript`关闭`iframe`外层的`div`容器,主要涉及跨域通信、事件监听以及窗口间的引用。通过这些技术,我们可以实现`iframe`内容与外部页面的交互,满足特定的用户需求。在实际开发中,需要注意安全性...
- 弹窗广告:利用 `Div` 控制广告的显示和隐藏,`iFrame` 显示广告内容。 - 多功能工具栏:`Div` 作为工具栏容器,`iFrame` 用于承载不同工具的功能页面。 6. **优化与注意事项**: - 考虑到兼容性和性能,合理...
在网页开发中,有时我们需要实现一个功能,即在iframe中打开一个新的弹出窗口,并且这个弹出窗口能够遮罩住其父级页面,提供一种更好的用户体验。标题"iframe弹出框遮罩父类页面"正是关于这个技术点的讨论。在描述中...
本文将深入探讨jQuery弹窗及其相关的jQuery UI库,特别是关于iframe弹窗的使用。 一、jQuery弹窗基础 jQuery弹窗通常基于JavaScript的DOM操作和事件处理功能,通过创建或修改DOM元素来实现弹出效果。jQuery提供了`...
在这个例子中,`div_window2`(包含`iframe`的`div`)的`z-index`设为600,而`div_window`(半透明遮罩`div`)的`z-index`设为200,确保遮罩位于弹窗后面。 `div_window2`的样式如下: ```html <div id="div_window...
"弹出DIV可拖动窗口示例(编辑窗口/iframe/等待/确认)"是针对这种需求的一种实现,它结合了多种技术来提供更丰富的用户体验。让我们详细探讨一下这个示例中的关键知识点。 首先,"弹出DIV窗口"指的是使用HTML `<div>...
本案例集主要探讨如何利用"div"配合CSS(层叠样式表)和JavaScript来实现各种弹出窗口效果。这些效果对于网页交互性和用户体验至关重要,如消息提示、登录框、模态对话框等。 首先,我们来看"iframe的div遮罩层(可...
这可以通过设置body或者其他包含所有内容的元素的CSS属性,如`opacity`或添加额外的`div`作为遮罩来实现。 4. 使用JavaScript或者jQuery等库来控制`iframe`的显示和隐藏,以及背景的可交互性。例如,可以监听点击...
通常,弹窗是通过将一个隐藏的HTML元素(如div)设置为可见并调整其位置来实现的。使用jQuery,可以方便地控制这些元素的显示、隐藏、动画和交互。例如,`show()`, `hide()`, `fadeIn()`, `fadeOut()`等方法可以用来...
在网页设计中,有时我们需要在页面中添加一个遮罩层,以实现如加载动画、弹窗提示或隐藏部分内容的效果。本话题将详细讲解如何在iframe中实现页面的遮罩层功能,结合`right.html`, `main.html`, `left.html`, `top....