intraweb下,点击IE的关闭按钮(即系统按钮的那个X)后,如何结束SESSION(此问题给900分)(300分)

  • 主题发起人 主题发起人 活化石
  • 开始时间 开始时间

活化石

Unregistered / Unconfirmed
GUEST, unregistred user!
intraweb下,点击IE的关闭按钮(即系统按钮的那个X)后,如何结束SESSION的,参照yeskert1的笔记无论那种方法,在那个版本都无法实现.对与最后回复的加ALERT的方法,倒是实现了,但整个窗体上的按钮也都被污染了,全都先执行那个ALERT所弹出的信息.那位能否费点心,彻底解决此问题.此问题给900分,参与者有分
 
老弟,哪个版本呀?
 
yeskert1的方法7.0.13以前的版本是可以的,但后面的就不行了.
 
哈哈,挺快呀.我5.127
 
IE6 sp1补丁全都打全了.别让失望啊!这个问题,是我对INTRAWEB的最后一个问题,也是我从没来没能解过的的,也是最想解决的.我的应用服务器HP LC3 相当与P350这个程度,内存也就128M,应用的数据交互性很强,现在用户不多,将来一多,可能就不好办了,也真不知道WEB服务器硬件的下限应该是多少,就我一个人用D,而且全是余业时间搞,跟他们是说不清道不明.郁闷.
 
to chenshaizi:我手中有5.127 7.020,全都试过了,不能用.两个操作系统的IE都是一样的.
 
我只有两个版本的,一个是5.0.43,一个是7.0.21。
6.0以后实现方法与5.x不同。
我这里都完全没有问题。
活化石,你怎样做的?所有按钮都污染了是怎么回事?
 
在IWTEXT1中
<SCRIPT FOR=window EVENT=onunload>
SubmitForm.IWBUTTON1.value='hi';
IWBUTTON1_onclick(SubmitForm.IWBUTTON1);
alert('bye'); //如果不加上这段无法执行,但加上这段代码后,所有的按钮(IWBUTTON,IWMENU)都先SHOWMESSAG:BYE这个弹出框了,然后再执行各自的内容了
</SCRIPT>
而这段代码:
<script FOR=window EVENT=onunload>
var s='';
var w;
SubmitForm.IW_Action.value='IWBUTTON1';
SubmitForm.IW_ActionParam.value='';
s='<html><body>'+document.forms['SubmitForm'].outerHTML+'</body></html>';
w=window.open('','');
w.document.write(s);
w.document.forms['SubmitForm'].submit();
w.document.forms['SubmitForm'].close();

</script>
简至成为恶梦了,是凡点击其它按钮,它都先执行此代码(反复打开后产生的窗体)
我有一个设想,如果在ONUNLOAD后,自动转向一个链接,即向IW的服务器发送查询字段(VALUE=...),在接受时自动销毁这个SESSION,然后关闭这第二个窗体.然而,严酷的现实是
我反复实验,关闭IE后转向的窗体在FONGTPAGE下制作的网页好使,而在IW下不认,ONUNLOAD事件.可能我产述的不太清晰.
 
根据你的说法,好像是页面submit时也出发了页面的onUnload事件!
这不应该呀!!!
看来我要查找资料学点东西了!
 
我查了资料,submit不应该触发onUnload事件的!!!
只有两种可能:1、你写了其他的什么javascript代码;2、intraweb提供的客户端脚本在处理submit时,实际上是关闭当前窗口并打开新窗口。
第一个可能性你自己判断了。
第二个,假如是第二个,有什么好处呢?确实有!就是窗口的工具栏在delphi中就可以控制。
要验证也容易,1、为页面上的form写onsubmit事件,看看是否执行,应该不执行才对;2、5.1.27的intraweb窗口可以定义工具栏吗?

嘻嘻!凭空想像的。
 
to:yeskert1


我买了 IntraWeb应用开发详解 ,并通过它入了门

现在也是 Session 无法解决

我的是7.0.21

您是如何解决 离开IE就 退出Session的?
 
to ww111222:
看我的笔记!也请你验证我笔记的内容是否可行。
http://www.delphibbs.com/keylife/iblog_show.asp?xid=4047
 
unit Unit1;

interface

uses
Classes, SysUtils, IWAppForm, IWApplication, IWTypes, Controls,
IWBaseControl, IWControl, IWCompButton, IWCompText,
IWTMSCtrls;

type
TIWForm1 = class(TIWAppForm)
IWButton1: TIWButton;
IWButton2: TIWButton;
IWText1: TIWText;
procedure IWButton1Click(Sender: TObject);
procedure IWButton2Click(Sender: TObject);
public
end;
implementation

{$R *.dfm}

uses
ServerController;


procedure TIWForm1.IWButton1Click(Sender: TObject);
begin
webapplication.Terminate();
end;

procedure TIWForm1.IWButton2Click(Sender: TObject);
begin
webapplication.ShowMessage('测试');

end;

initialization
TIWForm1.SetAsMainForm;
end.
////IWText1的内容////之一.每次,点击IWButton2先SHOWMESSAGE BYE,而后才是"测试'"字样
<SCRIPT FOR=window EVENT=onunload>
SubmitForm.IWBUTTON1.value='hi';
IWBUTTON1_onclick(SubmitForm.IWBUTTON1);
alert('bye'); //我加上的
</SCRIPT>
////而换成以下内容////
<script FOR=window EVENT=onunload>
var s='';
var w;
SubmitForm.IW_Action.value='IWBUTTON1';
SubmitForm.IW_ActionParam.value='';
s='<html><body>'+document.forms['SubmitForm'].outerHTML+'</body></html>';
w=window.open('','');
w.document.write(s);
w.document.forms['SubmitForm'].submit();
w.document.forms['SubmitForm'].close();

</script>///则陷入我所说的,每次单击任何一个按钮(IWBOTTON2)都SHOW一个网页,而且不关闭.
 

to :yeskert1

谢谢笔记我看了

如果按你的方法, session确实 杀掉 了,

但每次都要新开一个窗口,

这不太好吧


这是 我的源码:

http://y8y8.vicp.net/dvbbs6/uploadfile/200442320431919195.rar

您看看?
 
to:ww111222这就是我说的效果,你不妨添加一个按钮,试试.
 


to 活化石

谢谢

由于 操作人员的水平低,目前只有通过 关闭IE时杀掉session来解决 :-<
 
是呀,按照老Y 的7.021的办法,如果是最后一页的话关闭ie 弹出个新的
复制窗口到是可以,问题是当使用了
如:webapplication.activeform.free
Tmyform(webapplication).creat.show 后,将会出现错误的信息,也不停
的弹出复制窗,很乱。
关键是我们不知道用户什么时候关闭ie,不知老Y有没有更好的方法?
我到现在还在为session 郁闷着。
 
那就加把劲吧.
 
to :ww111222不是操作人员的水平低,换个角度,我要是用户,我不关心什么SESSION,什么释放,这是正常的心态,所以问题只能由开发的人来解决.
 
将脚本改成这样,其他不变:
<script FOR=window EVENT=onunload>
var s='';
var w;
var f;
f=document.forms['SubmitForm'];
if (f==null) return;
s='<html><body><form method="POST" name="SubmitForm1" action="'+f.action+'">';
s=s+'<input type="HIDDEN" name="IW_Action">';
s=s+'<input type="HIDDEN" name="IW_ActionParam">';
s=s+'</form></body></html>';
w=window.open('','');
w.document.write(s);
w.document.forms['SubmitForm1'].IW_Action.value='IWBUTTON1';
w.document.forms['SubmitForm1'].IW_ActionParam.value='';

w.document.forms['SubmitForm1'].submit();

</script>
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
605
import
I
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部