【提问】几段JS兼容性问题---->标题要长

xupeihuagudulei 2010-06-29 09:08:39
首页页面上放了这两段JS(其他还有很多,测试过是这两段可能有冲突,不能同时执行)

<script type="text/javascript" src="../JS/CustomReport/ReportView.js" />

<script type="text/javascript">

var canCloseWindow;
function $(o) { return document.getElementById(o); }
window.onresize = resizeDivHtmlReport;
function resizeDivHtmlReport() {
$("divHtmlReport").style.height = self.document.body.clientHeight - 55;
}

function GetStatus() {
canCloseWindow = document.getElementById("<%=txtCanCloseWindow.ClientID %>").value;
}

function CanCloseWindow(canCloseWindow) {
if (!canCloseWindow) {
window.event.returnValue = "报表正在生成中, 离开当前页面将影响页面的正常浏览.";
}
}
</script>

ReportView.js代码如下:
/*********************************/
var waiting_win;
function OpenWaiting() {
waiting_win = window.open('../waiting.aspx', 'WaitingWin', 'left='
+ (screen.availWidth - 300) / 2 + ',top='
+ (screen.availHeight - 200) / 2 + ',width=300,height=200');
}

function window_OnUnLoad() {
alert(waiting_win);
if (typeof (waiting_win) != "undefined" && waiting_win != null) {
try {
waiting_win.opener = null;

waiting_win.close();
}
catch (ex) { }
}
}
/*********************************/


然后前面简要的html代码

<body onload="GetStatus()" onbeforeunload="CanCloseWindow()" onunload="window_OnUnLoad()">
//界面上还存放着一个html服务器控件用来保存canCloseWindow状态。
<input type="hidden" id="txtCanCloseWindow" value="true" runat="server" />
</body>



我简单说下这个功能(其实也很简单)
首先,页面onload时,调用GetStatus方法,获取当前canCloseWindow状态。(默认为true,也就是说可以离开当前页),同时触发这个方法OpenWaiting()-->这个方法就是弹出一个耗时框,提示已操作多少时间。
然后呢,在页面执行时后台会对这个保存状态的值进行操作。比如:txtCanCloseWindow.Value = "false";,页面执行成功会再改回true;

但是赋完值之后不知道会不会再执行onload事件。去更新状态值。。也就是说这里需要.net后台代码 为js中的字段赋值。(这是一个问题,不知道咋写),我现在的写不法不管用,
还有就是onbeforeunload="CanCloseWindow()"判断能否离开当前页面。这个事件是在onunload="window_OnUnLoad()"之前执行的,也就是说执行了onbeforeunload就不会再去执行onunload了。我现在想把window_OnUnLoad这个放到后台程序处理完成的那个方法里去执行。用了client.registerstartscript(随便拼的).可是不管用。


谁告诉我该咋改改?

...全文
197 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
无爱大叔 2010-06-29
  • 打赏
  • 举报
回复
我想你应该用ajax来实现此功能,步骤:
“生成报表”按钮点击时弹出div遮罩层并ajax(设置setTimeout周期1秒)请求process.aspx
process.aspx用来生成报表,并返回是否生成成功
process.aspx返回值来确定div遮罩关闭或页面可关闭

注意页面不要回发
catpk 2010-06-29
  • 打赏
  • 举报
回复
关注ING.
xupeihuagudulei 2010-06-29
  • 打赏
  • 举报
回复
有一个reportview.aspx页面。


页面上有一个创建报表按钮,
当我点击按钮时。
弹出waiting.aspx(就是提示已耗时多少的一个框)
同时点击按钮之后就不可以再点击到别的地方
关闭页面或者刷新或者点别的页面都会提示
function CanCloseWindow(canCloseWindow) {
if (!canCloseWindow) {
window.event.returnValue = "报表正在生成中, 离开当前页面将影响页面的正常浏览.";
}
}

最后生成成功或者有错误返回的话,可以关闭页面同时关闭刚才的那个waiting.aspx,
可是我上面的那些代码不管用,不能同时用到一起。
阿非 2010-06-29
  • 打赏
  • 举报
回复
想做什么
十一文 2010-06-29
  • 打赏
  • 举报
回复
帮忙顶起
xupeihuagudulei9 2010-06-29
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 xhbmj 的回复:]

如果赋值时页面回发,onload肯定就执行了。

另外正如你所说onbeforeunload执行了onunload就不会执行了,所以建议你吧onunload的方法放到onbeforeunload里
[/Quote]我的赋值是在一个用户控件的点击按钮里写的。
无爱大叔 2010-06-29
  • 打赏
  • 举报
回复
如果赋值时页面回发,onload肯定就执行了。

另外正如你所说onbeforeunload执行了onunload就不会执行了,所以建议你吧onunload的方法放到onbeforeunload里
xupeihuagudulei 2010-06-29
  • 打赏
  • 举报
回复
具体应该怎么弄呢,
现在我是这两个功能都弄不出来 了
hookee 2010-06-29
  • 打赏
  • 举报
回复
看上去是要用ajax的,onload只能触发一次,要么就刷新页面.
onunload事件并不保险。可能的话后台要做超时服务程序来处理.
xupeihuagudulei 2010-06-29
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wujinjian2008n 的回复:]

function CanCloseWindow(canCloseWindow) 方法有参数,
为什么你调用onbeforeunload="CanCloseWindow()" 没给它传参数呢?
[/Quote]方法定义那里写错了
本身就是没有参数的。
wujinjian2008n 2010-06-29
  • 打赏
  • 举报
回复
function CanCloseWindow(canCloseWindow) 方法有参数,
为什么你调用onbeforeunload="CanCloseWindow()" 没给它传参数呢?
xupeihuagudulei 2010-06-29
  • 打赏
  • 举报
回复
xupeihuagudulei 2010-06-29
  • 打赏
  • 举报
回复
jsjhj2008 2010-06-29
  • 打赏
  • 举报
回复
但是赋完值之后不知道会不会再执行onload事件。去更新状态值。。也就是说这里需要.net后台代码 为js中的字段赋值。(这是一个问题,不知道咋写)
对于你这个问题
Response.write("<script>canCloseWindow='true'</script>");在后台试试这个方法。
xupeihuagudulei 2010-06-29
  • 打赏
  • 举报
回复
郁闷鸟,没人。。
subxli 2010-06-29
  • 打赏
  • 举报
回复
标题不够长。
xupeihuagudulei 2010-06-29
  • 打赏
  • 举报
回复
没人、
ztaimm 2010-06-29
  • 打赏
  • 举报
回复
帮顶~
xupeihuagudulei 2010-06-29
  • 打赏
  • 举报
回复
顶起。
xupeihuagudulei 2010-06-29
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 xhbmj 的回复:]

我想你应该用ajax来实现此功能,步骤:
“生成报表”按钮点击时弹出div遮罩层并ajax(设置setTimeout周期1秒)请求process.aspx
process.aspx用来生成报表,并返回是否生成成功
process.aspx返回值来确定div遮罩关闭或页面可关闭

注意页面不要回发
[/Quote]我就是不想用ajax 了啊
所以弄得现在不知道怎么去处理。
界面透明度247,所以软件看起来有点背景有图案花色的样子是因为背景的壁纸关系 调用了WKE引擎 通过HTML5 / JS /CSS 构造易语言UI窗口交互,使其富有更强大动画,视觉效果 本框架免费,无毒,无暗桩,请放心使用 增加了整体窗口UI美化,滚动条,标题栏,控制按钮关闭,缩小,全屏等常用组件 引擎使用了WKE,框架自行封装调用。 本人QQ:741896542  如需提问,欢迎加QQ 2016-12-07:     增加 wkeJSSimpleBind 接口,绑定简单的全局函数     渲染性能优化     增加一些不支持特性的兼容性     增加401验证回调接口: wkeOnResponseHttp401 2016-12-06:     修正手形鼠标     修正wkeWindowOnPaint返回值的默认处理     修正编辑事件     修正输入法位置 2016-11-15:     改进字体显示效果     Tip提示改为5秒后消失 2016-11-14:     修正alt(tips)显示问题     重新修改编码识别部分。目前没发现有识别错误的网站 2016-11-12:     增加透明webView的例子     修改文件系统接口回调为: wkeOnReadFile(...); 2016-10-20:     修正websocket关闭问题 2016-8-31:     修正gif动画花的问题     修正个别网站字体模糊问题 2016-8-29:     增加MimeType过滤接口     增加EnableNewWindow设置,如果为true, 那么将允许多进程窗口     增加下载接口     修正 JavascriptCore 一个浮点bug 2016-8-25     重写消息循环模式,重绘事件在独立线程完成     修正 Flash 不支持硬件加速的问题     提高js脚本下载优先级     重新加入C API模式     修正原本的几个bug     增加几个常用语言的识别 2016-8-22      加入JavascriptCore文字变量支持      优化 cairo 绘图性能 2016-8-17     修正mail.qq.com乱码问题     更新 curl到 7.50.1     加入未知编码自动识别判断 2016-8-13     加入WOFF图标显示支持     改进 Websocket支持     修正youku视频无法播放问题

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧