WEB开发网
开发学院网页设计JavaScript 仿163网盘无刷新文件上传系统 阅读

仿163网盘无刷新文件上传系统

 2010-09-14 13:25:05 来源:WEB开发网   
核心提示: 关于这方面更详细的内容请看这里,创建完还需要插入到body中,仿163网盘无刷新文件上传系统(3),一般的做法是使用document.body.appendChild,但在ie中会有“已终止操作”错误,答案是通过window.parent或window.top,在i

关于这方面更详细的内容请看这里。

创建完还需要插入到body中,一般的做法是使用document.body.appendChild,但在ie中会有“已终止操作”错误,可以用下面这段代码测试:

Code

<body>
<div>
<script>
document.body.appendChild(document.createElement("div"));
</script>
</div>
</body>

网上找到一个解析:“原来FF下的实现机制是当页面还没有完全读取完时body元素就已经存在了,而IE只有页面完全读取结束body元素才会存在,所以在页面中插入上面这条语句在IE下就会出现错误”。

我在web开发未解之谜中也提到了这个现象,我这里使用了insertBefore代替:

document.body.insertBefore(oFrame, document.body.childNodes[0]);

在服务器端文件传送完(或失败)之后,怎么通知客户端呢?

这里说说我的方法,首先我在客户端定义一个函数:

function Finish(msg){ alert(msg); location.href = location.href; }

很简单,就是显示提示并重新加载页面(如果使用reload会导致ff中iframe重复加载数据)。

那服务器端如何通知客户端的问题,就是iframe如何跟主页面交互。

答案是通过window.parent或window.top,在iframe中parent和top属性“分别返回立即父窗口和最上层的祖先窗口”。

例如我在服务器端处理完数据之后会输出:

context.Response.Write("<script>window.parent.Finish('" + _msg + "');</script>");

就会执行主页面的Finish函数了。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:网盘 刷新 文件

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接