showModelessDialog
一、showModalDialog和showModelessDialog有什么不同?
showModalDialog:被打开后就会始终保持输入焦点。除非对话框被关闭,否则用户无法切换到主窗
口。类似alert的运行效果。
showModelessDialog:被打开后,用户可以随机切换输入焦点。对主窗口没有任何影响(最多是被挡
住一下而以。
二、怎样才让在showModalDialog和showModelessDialog的超连接不弹出新窗口?
在被打开的网页里加上<base target="_self">就可以了。这句话一般是放在<head>之间的。
三、怎样才刷新showModalDialog和showModelessDialog里的内容?
在showModalDialog和showModelessDialog里是不能按F5刷新的,又不能弹出菜单。这个只能依靠
javascript了,以下是相关代码:
<body onkeydown="if (event.keyCode==116){reload.click()}">
<a id="reload" href="filename.htm" style="display:none">reload...</a>
将filename.htm替换成网页的名字然后将它放到你打开的网页里,按F5就可以刷新了,注意,这个要
配合<base target="_self">使用,不然你按下F5会弹出新窗口的。
四、如何用javascript关掉showModalDialog(或showModelessDialog)打开的窗口。
<input type="button" value="关闭" onclick="window.close()">
也要配合<base target="_self">,不然会打开一个新的IE窗口,然后再关掉的。
五、showModalDialog和showModelessDialog数据传递技巧。
(作者语:本来想用一问一答形式来写的,但是我想不出这个怎么问,所以只好这样了。)
这个东西比较麻烦,我改了好几次了不是没办法说明白(语文水平越来越差了),只好用个例子说明了
例子:
现在需要在一个showModalDialog(或showModelessDialog)里读取或设置一个变量var_name
一般的传递方式:
window.showModalDialog("filename.htm",var_name)
//传递var_name变量
在showModalDialog(或showModelessDialog)读取和设置时:
alert(window.dialogArguments)//读取var_name变量
window.dialogArguments="oyiboy"//设置var_name变量
这种方式是可以满足的,但是当你想在操作var_name同时再操作第二个变理var_id时呢?就无法
再进行操作了。这就是这种传递方式的局限性。
以下是我建议使用的传递方式:
window.showModalDialog("filename.htm",window)
//不管要操作什么变量,只直传递主窗口的window对象
在showModalDialog(或showModelessDialog)读取和设置时:
alert(window.dialogArguments.var_name)//读取var_name变量
window.dialogArguments.var_name="oyiboy"//设置var_name变量
同时我也可以操作var_id变量
alert(window.dialogArguments.var_id)//读取var_id变量
window.dialogArguments.var_id="001"//设置var_id变量
同样还可以对主窗口的任何对象进行操作,如form对象里的元素。
window.dialogArguments.form1.index1.value="这是在设置index1元素的值"
六、多个showModelessDialog的相互操作。
因为光说很费劲,我就偷点懒,直接用代码来说了,如果不明白的话那就直接来信(oyiboy#163.net(
使用时请将#改成@))问我吧。
以下代码的主要作用是在一个showModelessDialog里移动别一个showModelessDialog的位置。
主文件的部份js代码。
var s1=showModelessDialog(''控制.htm'',window,"dialogTop:1px;dialogLeft:1px") //打开控
制窗口
var s2=showModelessDialog(''about:blank'',window,"dialogTop:200px;dialogLeft:300px")
//打开被控制窗口
控制.htm的部份代码。
<script>
//操作位置数据,因为窗口的位置数据是"xxxpx"方式的,所以需要这样的一个特殊操作函数。
function countNumber(A_strNumber,A_strWhatdo)
{
A_strNumber=A_strNumber.replace(''px'','''')
A_strNumber-=0
switch(A_strWhatdo)
{
case "-":A_strNumber-=10;break;
case "+":A_strNumber+=10;break;
}
return A_strNumber + "px"
}
</script>
<input type="button" onclick="window.dialogArguments.s2.dialogTop=countNumber
(window.dialogArguments.s2.dialogTop,''-'')" value="上移">
<input type="button" onclick="window.dialogArguments.s2.dialogLeft=countNumber
(window.dialogArguments.s2.dialogLeft,''-'')" value="左移">
<input type="button" onclick="window.dialogArguments.s2.dialogLeft=countNumber
(window.dialogArguments.s2.dialogLeft,''+'')" value="右移">
<input type="button" onclick="window.dialogArguments.s2.dialogTop=countNumber
(window.dialogArguments.s2.dialogTop,''+'')" value="下移">
以上关键部份是:
窗口命名方式:var s1=showModelessDialog(''控
制.htm'',window,"dialogTop:1px;dialogLeft:1px")
变量访问方式:window.dialogArguments.s2.dialogTop
这个例子只是现实showModelessDialog与showModelessDialog之间的位置操作功能,通过这个原理,
在showModelessDialog之间相互控制各自的显示页面,传递变量和数据等。这要看各位的发挥了。
如果打开了一个模式窗口,想在打开的窗口中,关闭本窗口,重新加载父窗口,代码如下:
Response.Write("<script
language=javascript>parent.window.opener=null;parent.window.dialogArguments.location.reload
();window.close();</script>");
或者
function doModal(url){
win=window.showModalDialog
(url,0,"dialogWidth:500px;dialogHeight:500px;status:no;help:no;");
document.location.reload();//js页面中加入这句话就行了
}
分享到:
相关推荐
然而,随着Web标准的发展,使用`div`元素来模拟`showModalDialog`效果已经成为一种更现代、更灵活的方法。这种方法不仅避免了对弹窗功能的依赖,还能够更好地适应响应式设计,提升用户体验。 首先,让我们了解`...
本篇文章将深入探讨`showModalDialog`的使用方法、参数、返回值以及它在现代Web开发中的地位。 `showModalDialog`的基本语法如下: ```javascript window.showModalDialog(url, windowObject, features); ``` 1. ...
这种方法的关键在于利用`window.opener`属性,它指向打开当前窗口的窗口对象,因此我们可以在弹出的对话框中修改父窗口的属性,从而传递返回值。 尽管`showModalDialog`在某些场景下仍然有用,但由于它的兼容性和...
`showModalDialog`是JavaScript中`window`对象的一个方法,用于打开一个模态对话框,即新打开的窗口会阻止用户与...但由于浏览器兼容性问题,现代Web开发中已不再推荐使用此方法,转而使用更灵活且跨浏览器的解决方案。
- 在IE浏览器中,window.showModalDialog()方法支持得比较好,但在其它一些浏览器中可能不完全支持,或者在新的浏览器版本中已被弃用。 在开发过程中,有时也会遇到一些问题,比如:参数传递不正确导致子窗口无法...
在早期的浏览器中,`showModalDialog()` 方法是创建模态对话框的一种标准方法,但在现代浏览器,尤其是谷歌浏览器(Google Chrome)中,`showModalDialog()` 已经被弃用,并且在某些版本中不再支持。这给使用该功能...
然而,尽管这个方法成功地将特殊字符编码,但`window.showModalDialog`仍然无法正确处理编码后的字符串,因为JavaScript的URL处理机制可能不完全兼容服务器端的编码。 接着,开发者尝试使用JavaScript的内置函数 `...
`jQuery showModelDialog` 实际上是基于JavaScript的 `window.showModalDialog` 方法的一个扩展,用于弹出模态对话框,常用于展示信息、警告、确认或者与用户交互的场景。模态对话框的特点是它会阻塞用户对网页其他...
这两种方法被称为DOM Level 0 Event或原生事件处理。 DOM Level 0事件处理存在一些问题,如: 1. **全局作用域**:事件处理函数在全局作用域中运行,容易导致命名冲突,且影响性能,因为每次页面加载时都会创建...
这里我们将深入探讨在JSP和JavaScript中遇到的一些常见函数和方法。 1. **JavaScript事件处理**: - `onchange` 事件:在HTML元素(如`<select>`)中,`onchange`事件用于在用户更改选项后执行某些操作。例如,...
最后,可以注意到在代码片段中存在一些OCR识别错误,比如字符串中的"labname"实际上应该是"lifetime","infor"应该是"info",这些错误可能是由于扫描文档导致的文字识别不准确,需要结合实际的代码语境进行正确的...
`url`变量存储了要加载的页面路径,`showModalDialog`方法则用于显示这个对话框。 `okbtn_onclick` 函数的作用是在点击确定按钮时关闭对话框,并返回一个空字符串。这里的`window.returnValue`和`window.close()`...
在本文中,我们将深入探讨“showModalDialog”方法在Chrome 37及更高版本中的问题,并提供解决方案,同时关注如何实现跨浏览器兼容性,特别是针对IE和Chrome。 “showModalDialog”是JavaScript的一个窗口对话框...
`showModalDialog`是JavaScript中用于打开一个具有特定特性的新窗口或对话框的方法,可以设置宽度、高度、位置等属性。 在JavaScript中,对象是存储数据和方法的容器。例如,`window`对象是全局对象,提供了与...
`doSelectUser<txtId>`函数通过`window.showModalDialog`方法创建一个对话框,允许用户选择并返回选定的值。`okbtn_onclick<>`函数则处理对话框关闭时的逻辑,将返回值赋给`window.returnvalue`并关闭窗口。 全屏...
随着IE浏览器逐渐被淘汰,开发者应尽量避免在新项目中使用这些方法,转而使用更跨浏览器的解决方案,如Bootstrap的模态组件或者自定义的弹出层。 在实际应用中,为了兼容更多浏览器,开发者可以使用jQuery插件或...
本文将深入探讨四种主要的方法:`showModelessDialog`、`window.open`、`showModalDialog`以及`iframe`,来实现这样的交互。 首先,我们来看`showModelessDialog`,这是一个在Internet Explorer浏览器中特有的API,...
在“javascript常用代码大全[定义].pdf”中,涵盖了多个JavaScript编程中的常见功能和验证方法,以下是其中的一些关键知识点的详细解释: 1. **对话框**: - `showModalDialog()` 方法用于打开一个具有模态对话框...
最后通过`window.showModalDialog`方法展示对话框,并返回选择的结果。 #### 2. 全屏模式 ```javascript var winWidth = screen.availWidth; var winHeight = screen.availHeight - 20; window.open("main.aspx", ...
`showModalDialog`方法可以弹出一个模态对话框,例如`win=window.showModalDialog(url)`。在对话框中,可以通过`window.returnValue`设置返回值,关闭对话框后,主窗口可以通过`showModalDialog`的返回值获取这个值...