jsp页面中frame与子页面、父页面参数传递方法解析
4星 · 超过85%的资源 需积分: 50 187 浏览量
更新于2024-09-22
收藏 1KB TXT 举报
"在网页开发中,特别是在使用JSP(JavaServer Pages)时,有时我们需要在框架(frame)之间以及子页面与父页面之间传递参数。这种交互对于构建复杂的多页面应用是至关重要的。以下是一些关于如何进行这种参数传递的方法和示例代码。
在JSP中,frame之间的参数传递可以通过JavaScript实现,因为每个frame实际上都有自己的独立文档和DOM(文档对象模型)。例如,我们可以使用`document.frames`对象来访问和操作frame内的元素。下面的代码展示了如何从父页面获取子frame中的输入框值:
```html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312"/>
<title>父页面</title>
<script type="text/javascript">
function getChildEl() {
alert(document.frames("inner").document.getElementById("text1.inner").value);
}
</script>
</head>
<body>
<input type="text" id="text1.outter" value="outtertext"/>
<input type="button" value="获取子页面值" onclick="getChildEl()"/>
<br/>
<iframe id="inner" name="inner" src="child.html"></iframe>
</body>
</html>
```
在这个例子中,当点击按钮时,`getChildEl`函数会被调用,它通过`document.frames("inner")`访问到名为"inner"的frame,并进一步找到该frame内的ID为"text1.inner"的输入框,然后弹出其值。
对于子页面向父页面传递参数,可以使用`parent`关键字来引用父窗口的DOM。以下是一个简单的例子:
```html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312"/>
<title>子页面</title>
<script type="text/javascript">
function setParentEl() {
parent.document.getElementById("text1.outter").value = "子页面值";
// 如果需要触发父页面上的事件,可以这样:
// var event = document.createEvent('HTMLEvents');
// event.initEvent('customEvent', true, false); // customEvent为自定义事件名
// parent.document.getElementById("targetElement").dispatchEvent(event);
}
</script>
</head>
<body onload="setParentEl()">
<!-- 在子页面中无需显示任何内容 -->
</body>
</html>
```
在这个子页面中,`setParentEl`函数会将自身的值设置为"子页面值",并赋给父页面中ID为"text1.outter"的输入框。如果需要触发父页面上的某个事件,还可以创建并派发自定义事件。
这种参数传递方式在多frame布局或嵌套页面中非常有用,可以帮助各部分之间共享数据或执行特定操作。不过,需要注意的是,由于同源策略的限制,只有同源的frame才能互相访问,跨域的frame之间无法直接进行DOM操作。如果需要跨域传递数据,可以考虑使用其他机制,如postMessage API。"
2021-01-21 上传
2019-05-24 上传
2012-04-15 上传
2020-09-04 上传
2022-01-13 上传
2020-09-05 上传
2021-04-25 上传
_Mr_Yang_
- 粉丝: 16
- 资源: 98
最新资源
- NIST REFPROP问题反馈与解决方案存储库
- 掌握LeetCode习题的系统开源答案
- ctop:实现汉字按首字母拼音分类排序的PHP工具
- 微信小程序课程学习——投资融资类产品说明
- Matlab犯罪模拟器开发:探索《当蛮力失败》犯罪惩罚模型
- Java网上招聘系统实战项目源码及部署教程
- OneSky APIPHP5库:PHP5.1及以上版本的API集成
- 实时监控MySQL导入进度的bash脚本技巧
- 使用MATLAB开发交流电压脉冲生成控制系统
- ESP32安全OTA更新:原生API与WebSocket加密传输
- Sonic-Sharp: 基于《刺猬索尼克》的开源C#游戏引擎
- Java文章发布系统源码及部署教程
- CQUPT Python课程代码资源完整分享
- 易语言实现获取目录尺寸的Scripting.FileSystemObject对象方法
- Excel宾果卡生成器:自定义和打印多张卡片
- 使用HALCON实现图像二维码自动读取与解码