我们是把aspx的页面以<iframe></iframe>形式嵌入到了HTM页面,在这个aspx页面中的按钮中,用服务器代码Response.Write("<javascript:window.open('XXX.aspx")>...");的形式,从服务端打开新窗口,简单的说,是index.htm页的一个栏目,是一个XXX.aspx的页面以<iframe>嵌入的,当点击这个栏目的一个按钮,则以Response.Write("<javascript:window.open('XXX.aspx")>...");的形式打开新窗口,在新窗口关闭后,再点击“刷新”,则那个窗口又会弹出来;或者点击index.htm页链接,进入下一个页面后,再点击“后退”,则窗口又弹出来。
首先 ,不允许屏蔽IE后退和刷新按钮(公司要求),
另外,1 其他的本论坛的解决办法,也搜索了好多,但是这个问题还没解决;
2 禁止刷新时服务器端代码再执行的代码
if( Request.Headers["Accept"] != "*/*" )
{
... ...
}
尝试过,不行。
3 代码 Page.RegisterClientScriptBlock 尝试过,不行。
4 类似清除缓存等的代码,尝试过,不行。
真是头疼,麻烦大家,看清楚我的问题,给予大力支持,SOS
首先 ,不允许屏蔽IE后退和刷新按钮(公司要求),
另外,1 其他的本论坛的解决办法,也搜索了好多,但是这个问题还没解决;
2 禁止刷新时服务器端代码再执行的代码
if( Request.Headers["Accept"] != "*/*" )
{
... ...
}
尝试过,不行。
3 代码 Page.RegisterClientScriptBlock 尝试过,不行。
4 类似清除缓存等的代码,尝试过,不行。
真是头疼,麻烦大家,看清楚我的问题,给予大力支持,SOS
能不能在你的Page.RegisterClientScriptBlock之前判断某个特定的cookie是否存在,如果存在就不注册.
在注册代码的后面创建cookie.
if(Request.Cookie["set"]==null)
{
Page.RegisterClientScriptBlock
HttpCookie newCookie=new HttpCookie("set");
Response.Cookies.Add(newCookie);}
你可以尝试一下,不保证正确!
<SCRIPT LANGUAGE="JavaScript">
<!--
function window.onunload(){
top.name = "awaysrain";
}
if(top.name!="awaysrain"){
top.open();
}
//-->
</SCRIPT>
象上面的我们一般是用Session记录上次访问的时间,再用当前时间和这个Session时间对比,例如时间差超过10秒才继续执行。不过这个和你要的效果应该不是一样的。
demo.htm
------------------------------
<iframe src="test.htm"></iframe>
test.htm
-------------------------------
<SCRIPT LANGUAGE="JavaScript">
<!--
function window.onunload(){
top.name = "awaysrain";
}
if(top.name!="awaysrain"){
top.open();
}
//-->
</SCRIPT>或者你在服务器端用session判断,如果开了新窗口就别Response.Write("<javascript:window.open('XXX.aspx")>...");
这句后再重定向到这张页一次
Response.redirect("aaa.aspx");
行么?
Response.write("window.document.getElementById(\"iframename\").src= \"aaa.aspx\"";
aaa.aspx就是打开窗口的那张页。