JS调用父界面中的对象
一、在web开发中如果使用到iframe标签,并且父窗体想要调用子窗体中的js方法,那么就需要使用到contentWindow方法
具体情况如下:
case:子窗体调用父窗体的方法:window.parent.afterAdd(data);
1 <meta name="viewport" content="width=device-width" /> 2 <title>ShowAddInfo</title> 3 <script src="~/Scripts/jquery-1.8.2.min.js"></script> 4 <script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script> 5 <script type="text/javascript"> 6 function subForm() { 7 $("#addRoleForm").submit(); 8 } 9 function afterAdd(data) { 10 //子窗体调用父窗体中的方法。 11 window.parent.afterAdd(data); 12 } 13 </script> 14 </head> 15 <body> @*处理的方法名,控制器名,额外参数 回调函数,返回成功之后的函数, 返回id的值*@ 16 @using (Ajax.BeginForm("AddRoleInfo", "RoleInfo", new { }, new AjaxOptions() { OnSuccess = "afterAdd" }, new {id="addRoleForm"})) 17 { 18 19 @Html.AntiForgeryToken() 20 @Html.ValidationSummary(true) 21 22 <fieldset> 23 <legend>RoleInfo</legend> 24 25 <div class="editor-label"> 26 @Html.LabelFor(model => model.RoleName) 27 </div> 28 <div class="editor-field"> 29 @Html.EditorFor(model => model.RoleName) 30 @Html.ValidationMessageFor(model => model.RoleName) 31 </div> 32 33 }
js父窗体调用子窗体的方法:
1 //提交表单 2 //调用子窗口的方法. 先获取dom对象,然后获取嵌入在子窗体的window对象。 3 var childWindow = $("#addFrame")[0].contentWindow;//表示获取了嵌入在iframe中的子窗体的window对象。 4 childWindow.subForm();//调用上方子窗体中的方法,完成表单的提交。