js iframe窗口关闭与提交
时间: 2023-07-13 10:05:08 浏览: 98
可以使用以下代码来关闭 iframe 窗口:
```javascript
parent.document.getElementById('iframe_id').style.display = 'none';
```
其中,`iframe_id` 是你的 iframe 元素的 ID。
如果你想在关闭 iframe 窗口时提交表单,可以在关闭窗口前先调用表单的 submit() 方法,如下所示:
```javascript
// 获取表单元素
var form = parent.document.getElementById('form_id');
// 提交表单
form.submit();
// 关闭 iframe 窗口
parent.document.getElementById('iframe_id').style.display = 'none';
```
其中,`form_id` 是你的表单元素的 ID。
相关问题
子窗口iframe表单提交后关闭窗口
子窗口iframe表单提交后关闭窗口的方法是通过父窗口的JavaScript代码来实现。可以使用以下步骤:
1. 在子窗口的表单中,添加一个提交事件的监听器,当表单提交时执行一段JavaScript代码。
2. 在提交事件的监听器中,使用`window.parent`来访问父窗口的JavaScript代码。
3. 使用`window.parent`调用父窗口中的关闭窗口方法,例如`window.parent.closeWindow()`。
下面是一个示例代码:
在子窗口的HTML文件中:
```
<form id="myForm" action="submit.html" method="post">
<!-- form fields here -->
<button type="submit">提交</button>
</form>
<script>
document.getElementById('myForm').addEventListener('submit', function(e) {
e.preventDefault(); // 阻止表单提交的默认行为
// 调用父窗口的关闭窗口方法
window.parent.closeWindow();
});
</script>
```
在父窗口的JavaScript中:
```
function closeWindow() {
// 关闭子窗口
// 可以使用window.close()方法来关闭窗口,但是需要注意该方法在某些浏览器中可能会被禁用
// 为了更好的兼容性,可以使用以下方法:
var iframe = document.getElementById('mainFrame');
iframe.parentNode.removeChild(iframe);
}
```
请注意,上述代码中的`mainFrame`是父窗口中iframe的id,你可能需要根据实际情况进行修改。另外,由于安全限制,关闭窗口的功能可能在某些浏览器中受到限制。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [javascript iframe编程相关代码](https://download.csdn.net/download/weixin_38632046/14816473)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [111 js iframe表单提交后自动关闭 &](https://blog.csdn.net/fancivez/article/details/49704945)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
帮写一个简单的html 案例,点击input 框旁边的按钮,弹出iframe层,在iframe层中选择某个值,会传递给 父框架的input,并关闭弹出iframe层
当然可以。这是一个基本的HTML案例,配合JavaScript来实现你的需求。在这个例子中,我们将创建一个带有输入框和点击按钮的页面,点击按钮后会弹出一个新的iframe,在其中可以选择一些选项,然后将选择的结果返回并更新到父页面的输入框。
```html
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>弹出iframe示例</title>
<style>
#popup {
display: none;
}
</style>
<script>
function openPopup() {
var popup = document.getElementById('popup');
popup.style.display = 'block';
// 这里假设iframe的内容是通过外部URL加载的,你可以替换为实际的URL
var iframe = document.getElementById('myIframe');
iframe.src = "iframe_content.html"; // 替换为你想要显示的选择页面
// 绑定iframe的load事件,当内容加载完成后执行回调函数
iframe.onload = function() {
var iframeContent = iframe.contentWindow.document.getElementById('selectedValue'); // 假设选择元素id为'selectedValue'
if (iframeContent) {
document.getElementById('parentInput').value = iframeContent.value; // 更新父页面的input
}
// 关闭弹出窗口
popup.style.display = 'none';
};
}
</script>
</head>
<body>
<input type="text" id="parentInput" placeholder="父页面输入框"><br>
<button onclick="openPopup()">选择并提交</button>
<!-- 弹出的iframe -->
<div id="popup" style="position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 400px;">
<iframe id="myIframe" src="" width="100%" height="300"></iframe>
</div>
</body>
</html>
```
请注意,这个示例假设你有一个名为`iframe_content.html`的页面,用户可以在其中选择一个值,然后将选择的值存储在一个ID为`selectedValue`的元素中。你需要根据实际的结构调整相关的元素ID和属性。
阅读全文