使用JS跨页面获取用户输入数据的方法
155 浏览量
更新于2024-08-30
收藏 28KB PDF 举报
"JS实现获取打开一个界面中输入的值"
在JavaScript中,要实现在一个界面(通常称为父窗口)中打开另一个界面(子窗口),并获取子窗口中用户输入的值,可以使用`window.showModalDialog()`方法。这个方法会弹出一个模态对话框,用户可以在其中进行交互,而父窗口会暂停执行直到子窗口关闭。下面将详细解释这个过程。
首先,我们来看`Index.html`,这是父窗口的HTML代码。在这个例子中,我们有一个按钮,当点击时会触发`EntryPoint`函数。`EntryPoint`函数创建了一个样式对象`style`,定义了子窗口的尺寸、状态栏、帮助和滚动条设置。然后调用`window.showModalDialog()`,参数为子窗口的URL(`other.html`)、空字符串以及样式对象。`showModalDialog`返回值为子窗口的返回值,如果用户在子窗口中输入了值,这些值会被返回。
在`other.html`中,是子窗口的代码。这里有两个输入字段,分别用于输入名字和年龄。用户输入后,`postValue`函数被调用,获取这两个输入字段的值,并将它们放入一个数组`a`中。`window.returnValue`属性用于设置子窗口返回给父窗口的值,这里我们将`a`数组赋值给它,以便父窗口可以访问这些值。
当子窗口关闭时,`EntryPoint`函数中的`if(a==undefined)`判断会检查`showModalDialog`的返回值是否已定义,如果是,则尝试从`window.returnValue`获取值。如果`a`不为空且长度大于0,那么父窗口的两个文本输入字段(`name`和`age`)会被更新为子窗口输入的值。
这个功能对于需要在多个页面之间传递数据的Web应用非常有用,例如表单验证或者数据预览。但是,需要注意的是,`window.showModalDialog()`在某些现代浏览器中可能已被弃用或不推荐使用,因为它阻碍了Web标准的前进,如HTML5引入的`<dialog>`元素。因此,在实际开发中,可能会考虑使用`window.open()`配合`window.postMessage()`来实现类似的功能,这更符合当前的Web开发趋势,并且有更好的兼容性和可维护性。`window.postMessage()`允许跨窗口通信,即使窗口不是由同一个脚本打开的,也可以安全地传递消息。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2023-06-02 上传
720 浏览量
2017-12-19 上传
2021-05-08 上传
2020-10-27 上传
2022-01-22 上传
weixin_38621441
- 粉丝: 7
- 资源: 933
最新资源
- n2h2p-开源
- LilyNice.gk9potbknt.gadJ3Ld
- volar:手掌| 一页最小视差模板
- beap:Python中的beap(双亲堆)算法参考实现
- UCAB_IngSoftware:未知〜电厂管理项目
- 美赛:Matlib下层次分析法,多属性模型
- MCFI.zip_界面编程_C#_
- mini-projects-3
- opengl实现画图板VS2010项目
- EventPlanner
- C++套接字实现UDP通讯,客户端以及服务端demo
- keap:Keap是一种堆数据结构,具有稳定的PriorityQueue和稳定的Keapsort排序算法
- ClickLearn Chrome Connector-crx插件
- pands-problem-sheet
- shader-playground:着色器游乐场的乐趣
- mysql2pg-开源