javascript - iframe 中的表单未定义:边缘问题
问题描述
将值设置为 iframe 中的表单并提交表单。
window.frames['equityIFrame'].document.forms[0].[actionParam] = "equityAction";
window.frames['equityIFrame'].document.forms[0].submit();
此代码在 IE 和其他浏览器中运行良好。
在 Edge 浏览器中,引发以下错误。
无法读取未定义的属性“形式”。
解决这个问题的方法是什么。
解决方案
您可以使用它HTMLIFrameElement.contentWindow
来访问 iframe 的文档及其内部 DOM。你可以参考我下面的示例代码,它在 Edge 和其他浏览器中运行良好:
iframe.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<iframe src="form.html" id="test"></iframe>
<input type="button" value="click" onclick="ChangeIframe()" />
<script>
function ChangeIframe() {
document.getElementById("test").contentWindow.document.getElementById("fname").value = "myname";
document.getElementById("test").contentWindow.document.forms[0].submit();
}
</script>
</body>
</html>
表单.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<form action="index.html" method="get">
<label for="fname">First name:</label>
<input type="text" id="fname" name="fname"><br><br>
<label for="lname">Last name:</label>
<input type="text" id="lname" name="lname"><br><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
推荐阅读
- python - 为什么 selenium 试图用以前的 ID 定位相同的元素
- c - UDP套接字不读取数据包
- javascript - 向导航栏链接添加热键快捷方式
- html - Angular:第一次从httpResponse设置值时如何调用输入ngModelChange
- swift - 如何设置具有相同捆绑版本的两个目标的 XCode 项目
- sql - 多部分标识符无法绑定 SQL Server
- python - Plotly:如何在一个数字上只显示今天的数据?
- javascript - 在 react-chartist 中将图例添加到图表
- java - 为什么我在 restTemplate.postforEntity 之后的值为 null
- java - Java 类实例是单例吗?