在维护OA系统的时候碰到了一个问题:
文件上传时后台要传回信息来确认上传正确。方案如下:
在前段提交时,触发一个js函数完成提交:
function ChangeForm(str) {
var form = document.forms['FormEdit'];
if (str == "1") {
//
// 此处为目标iframe的ID
//
form.target = "ifrm1"
}
else {
form.target = "_self"
}
//执行SUBMIT
form.submit();
}
后台返回一段脚本:
return Content("<script>window.parent.SetDoc('/" + ViewData["fjdoc"].ToString().Replace("\\", "/") + "')</script>");
来调用setDoc函数完成“上传成功”字符的显示。
但是再按原页面的保存键时却发生了后台的View全部返回到iframe里面了。其实只要在保存时重新执行以下changeForm函数把form.target设置为_self即可
另外附上一段target的属性值及其含义:
target属性指定所链接的页面在浏览器窗口中的打开方式,它的参数值主要有:_blank、_parent、_self、_top,这些参数值代表的含义如下:
◎_blank,在新浏览器窗口中打开链接文件。
◎_parent,将链接的文件载入含有该链接框架的父框架集或父窗口中。如果含有该链接的框架不是嵌套的,则在浏览器全屏窗口中载入链接的文件,就象_self参数一样。
◎_self,在同一框架或窗口中打开所链接的文档。此参数为默认值,通常不用指定。
◎_top,在当前的整个浏览器窗口中打开所链接的文档,因而会删除所有框架