今天在IE下遇到了一个对于我来说的一个诡异的问题,
window.open("test02.php","just test","menubar=1,location=1");
window.open("test02.php","juestest","menubar=1,location=1");
这本来是一个很简单的句子,第一句在IE下面不起作用,第二句就可以,区别在于第二个参数多了一个空格,自己还2B一样以为发现了IE的bug,结果别人深深的鄙视了。
下面是别人的总结:
http://stackoverflow.com/questions/710756/ie8-var-w-window-open-message-invalid-argument
This is an old posting but maybe still useful for someone.
I had the same error message. In the end the problem was an invalid name for the second argument, i.e., I had a line like:
window.open('/somefile.html', 'a window title', 'width=300');
The problem was 'a window title' as it is not valid. It worked fine with the following line:
window.open('/somefile.html', '', 'width=300');
In fact, reading carefully I realized that Microsoft does not support a name
as second argument. When you look at the official documentation page, you see that Microsoft only allows the following arguments, If using that argument at all:
- _blank
- _media
- _parent
- _search
- _self
- _top
我算是213到家了,还以为是IE的bug....
think firest,check secound,search third,ask last
父窗口调用子窗口函数实现是挺简单的,如下:
var wnd = window.open("XXX.html");
wnd.showDatas(datas);
以上代码中,showDatas是定义在子窗口的函数,datas是父窗口要给子窗口的数据。
需要注意的事,使用open语句打开窗口后,窗口未必能把所有代码全部载入,因此showDatas函数未必调用有效。
如果要有效,可以先把数据传递给子窗口,再在子窗口中延时调用showDatas函数。
如此,父窗口中的代码如下:
var wnd = window.open("XXX.html");
wnd.datas=datas;// 传递数据给子窗口
子窗口中的代码如下:
setTimeout(showDatas(window.datas),1000);// 延时时间可进行调整。
如上,父窗口调用子窗口函数才算完美。
反过来,子窗口要调用父窗口的函数要用opener对象,如:
opener.showMessages(msgs);
以上代码中,showMessages是定义在父窗口的函数,msgs是子窗口要给父窗口的数据。
分享到:
相关推荐
当要使用window.open()去打开多个子窗口的时候,在ie7之后,都要使用不同的name,这样才能够打开出多个不同的窗口,如果name相同的话,就只能打开第一个子窗口。同事要是子窗口和父窗口有数据交换或是方法相互调用时...
`window.open` 方法有四个参数,其中前三个参数是必须的,第四个参数是可选的。 1. **url (可选)**: - 描述: 指定要打开的新窗口所加载的文档的URL。 - 示例: `"http://www.example.com"` - 注意: 如果不提供此...
- 通过`window.open`函数打开一个新窗口,并设置参数为全屏模式。 - 可以通过设置不同的参数来控制新窗口的行为,例如禁用滚动条、菜单栏等。 2. **示例代码**: ```javascript function omiga_window() { ...
#### 二、Window对象的作用 `Window`对象在JavaScript中扮演着多重角色: - **全局命名空间**:所有的全局变量和函数都定义在这个对象上。 - **文档容器**:`Window`对象可以访问当前窗口中的文档对象(`document`...
第二个按钮先打开窗口,然后通过`moveTo`和`resizeTo`调整位置和大小;第三个按钮使用了`showModalDialog`,这是一个模态对话框,不允许用户与当前窗口交互,直到关闭对话框。 3. **默认大小开启**: ```...
2. 对于第二类应用,如工作流分配这样的复杂操作,`showModalDialog` 调用可能会引起一系列后续操作。在这种情况下,我们需要对代码进行“hack”,也就是临时替换 `showModalDialog` 方法,使其行为更符合自动化测试...
第一个参数是窗口水平移动的像素,第二个参数是窗口垂直移动的像素。 - **11. `moveTo()` 方法** - **语法**: `window.moveTo(x, y)` - **功能**: 将窗口移动到指定坐标 `(x, y)` 处。 - **12. `resizeBy()` ...
如果仅需关闭当前标签页,那么第二个参数应设置为 '_self';如果要关闭整个浏览器,第二个参数应设置为 '_parent'。以下是针对IE7的代码: ```javascript else if(ieVersion == "7.0") { // 如果要关闭整个浏览器 ...
--IE6下可以用window.opener绕过这一个限制--> <a href="javascript:window.opener='x';window.close()">Close IE6 <!--IE7下可以用这样的方法--> <a href="javascript:window.open('','_top'); window.top.close()...
而在 Firefox 中,事件对象通常需要通过事件处理函数的第一个参数来传递。为了实现跨浏览器兼容性,可以使用以下方式: ```javascript function Submitted(evt) { evt = evt ? evt : (window.event ? window.event...
而在Firefox中,则需要通过事件处理器的第一个参数获取。 - **解决方案**:可以使用兼容性良好的方式获取事件对象: ```javascript function onEvent(evt) { evt = evt ? evt : window.event; // 处理事件.....
- `window.open('url', '_blank')`:使用`_blank`作为第二个参数,页面将在新标签页或窗口中打开。 6. **弹出提示窗口并跳转页面** - `alert('message'); window.location.href='url'`:首先显示一个包含消息的...
- 第二个参数是新窗口的名称,可以为空,用于区分多个弹窗。 - 第三个参数是窗口特性字符串,如`'height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, ...
对于其他浏览器,应考虑使用`window.open()`或其他第三方库如jQuery UI Modal。 - **安全性**:直接使用`substring()`方法可能存在问题,尤其是如果返回的字符串格式不确定的情况下。应该对返回的值进行适当的验证和...
为了更好地理解如何在实际项目中应用上述方法,这里提供一个综合示例,展示了如何在一个主窗口中打开另一个窗口,并在第二个窗口中添加代码以允许其自我关闭。 ```html <!DOCTYPE html> 主窗口 ()">打开子...
其中,第一个参数是目标URL,第二个参数为空表示不使用命名窗口,第三个参数定义了新窗口的尺寸和位置。 #### 6. 随机数生成 在ASP中生成随机数可通过以下方式: ```asp (Int(Rnd()*n) + 1)%> ``` 这里`n`代表...
这通常涉及到文件API、ActiveXObject(针对IE)和第三方库的使用。下面将详细介绍如何实现这一功能。 首先,我们需要理解浏览器之间的差异。Chrome和Firefox支持FileReader API,可以用来读取本地文件。然而,IE...
- **问题描述**:`window.event` 在 IE 下可用,但在 Firefox 下不可用,因为 Firefox 的事件对象必须在事件发生时通过参数传递。 **解决方法**: ```html (event)">点击我 ``` ```javascript function ...
- 第二个参数表示窗口操作方式: - `1` 表示在当前窗口中执行操作。 ##### 2. `ExecWB` 方法 `ExecWB` 是 Internet Explorer 中特有的 ActiveX 控件方法,可以用来控制浏览器的行为。通常与 `WebBrowser` 对象...