【发布时间】:2012-01-17 09:36:55
【问题描述】:
我必须将一个 Java 小程序集成到一个简单的 asp.net 2.0 控件中。
这个小程序是购买的产品,不能修改。它包含一个旨在单击以继续的按钮。按钮点击链接到一个 JavaScript 函数。
所以我们可以把这个小程序看成一个黑盒子,吃完数据并调用一个 JS 函数。
当调用 JS 函数以转到下一页时,我必须进行回发。很简单,我只需要写。但我也想隐藏小程序或包含它的 div,因为回发会触发一些长时间的处理。关键是,在等待的时候,用户可以点击小程序按钮,再次触发回发。
在我的 JavaScript 调用函数中,我尝试了很多解决方案:
- 进行 2 次回发。当然这不起作用,因为回发是重新加载页面
- 使用 JavaScript 隐藏/显示 div 或小程序
- 使用 jQuery 隐藏/显示 div 或小程序
- 隐藏/显示调用不可见按钮的点击事件的div或小程序在后面的代码中设置Visible = false
但它总是失败:似乎网络浏览器(IE 8.0 或 Chrome)等待回发/JS 函数结束来更新页面,并且不打扰之前的一些 UI 更新。
所以我在这里:
- 我需要回发才能转到下一页(我不控制使用我的控件的整个环境)
- 我必须隐藏小程序,否则用户可以重新点击它
- 我无法创建一个两步过程,例如让 JS 函数隐藏小程序并显示指向下一页的链接,涉及新的点击
我的简单控制:
<%@ Control Language="C#" AutoEventWireup="false" Codebehind="MyControl.ascx.cs"
Inherits="MyControl" %>
<div id="m_DivPostDisplay" runat="server">
<asp:Label ID="lblState" runat="server" Text="Displaying something like please wait..." />
</div>
<div id="m_DivAppletContainer" runat="server">
<applet name="myApplet" archive="./myJar.jar"
code="Main.class" height="700" width="530" mayscript>
</applet>
</div>
相关的javascript(页面加载时注入):
<script language='javascript'>
function sendData(data) {
// This is where I try to hide the applet or the div
//.....
// Go to the next page
WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(\"nextButtonId\", \"\", true, \"\", \"\", false, true));
}
</script>
您知道可以采取什么措施来解决我的问题吗? 谢谢:)
【问题讨论】:
-
我尝试了另一种方法:淡出页面并显示一个不错的“正在加载,请稍候”消息。但是小程序不会淡出,并且小程序缺少像“wmode”这样的参数用于闪存。所以我有一个漂亮的淡出页面,中间有一个闪亮的小程序......
标签: javascript asp.net .net applet postback