StructClear和StructDelete不适用于IE8

时间:2013-06-24 03:57:41

标签: session coldfusion internet-explorer-8

我希望在页面的INITIAL条目中删除会话变量。

我试图像这样实现它(JavaScript:SetNextPage()会将hidSection设置为页面名称,如"PAGEONE""PAGETWO"

<!--- If INIT page access, it will be "" Otherwise it will not be "" --->
<cfset hidSection_val = "">
<cfif IsDefined("FORM.hidSection")>
    <cfset hidSection_val = FORM.hidSection>
</cfif>

<cfif hidSection_val eq "">
    <cfset tmp = StructClear(SESSION)>
    <cfset SESSION = StructNew()>
    <cfset hidSection_value = "PAGEONE">
<cfelse>
     <!--- Do other stuff --->
</cfif>
.
.
.
<input type="submit" name="btnAddToSession" id="btnAddToSession" value="Add" />
<input type="submit" name="btnNextPage" id="btnNextPage" value="Next Page" OnClick="SetNextPage()" />
<input type="hidden" id="hidSection" name="hidSection" value="#hidSection_value#">

我省略了很多代码,但我认为我已经在那里列出了基本代码。

所以我采取的步骤:

  1. 输入表单信息,然后单击“添加”按钮
  2. 单击浏览器的URL栏并按Enter键

    注意:在此阶段,我希望代码能够通过StructClear等运行。

  3. 我点击下一页按钮
  4. 我可以使用其中的所有值来CFDUMP会话变量。
  5. 为什么在我清除会话变量时会显示会话变量?

    FireFox和Chrome正在按预期工作。但是,它在IE8中不起作用!

    这是IE8问题还是我对StructClear等有一些错误的想法?有什么想法吗?

1 个答案:

答案 0 :(得分:0)

好的,IE8必须有某种特殊的缓存方式。

抓住机会,我试了一下:

<form name="..." action="blah.cfm?n=<cfoutput>#Rand()#</cfoutput>" method="post">

我的下一页停止了删除/清除的会话!