jqery iframe 对话框传值
时间: 2023-07-06 07:11:06 浏览: 133
在使用 jQuery UI 的对话框组件时,你可以通过在对话框中嵌入一个 iframe 来显示另一个页面,并通过 iframe 与父窗口之间的通信来传递数据。具体步骤如下:
1. 在父窗口中,创建一个包含 iframe 的对话框。
```
$('<div>').html('<iframe src="anotherPage.html"></iframe>').dialog({
modal: true,
buttons: {
"确定": function() {
// 获取返回值并处理
var returnValue = $('iframe').contents().find('#returnValue').val();
// do something
$(this).dialog("close");
},
"取消": function() {
$(this).dialog("close");
}
}
});
```
2. 在 iframe 中,设置一个表单元素来接收返回值。
```
<form>
<label for="returnValue">返回值:</label>
<input type="text" name="returnValue" id="returnValue" />
</form>
```
3. 在 iframe 中,当用户点击确定按钮时,使用 jQuery 的 postMessage 方法向父窗口发送数据。
```
$('form').submit(function(event) {
event.preventDefault();
var returnValue = $(this).find('#returnValue').val();
window.parent.postMessage(returnValue, '*');
});
```
4. 在父窗口中,监听 iframe 的 message 事件,以获取传递过来的数据。
```
$(window).on('message', function(event) {
var data = event.originalEvent.data;
// do something with data
});
```
这样,当用户在 iframe 中点击确定按钮时,表单会提交并通过 postMessage 方法向父窗口发送数据,父窗口可以获得返回值并进行处理。请注意,这种方式存在安全风险,请确保你发送的数据是可信的。
阅读全文