IE8和Classic ASP中的会话变量问题

时间:2014-07-14 10:36:57

标签: html vbscript asp-classic

所以我的网站上有一个库存管理系统,其中包含一个显示各种库存和库存信息的表格。

当"图像"单击链接,图像的会话变量在"显示"之间切换。并且"隐藏"然后使用更新的变量重新加载页面,并为每个产品显示或隐藏图像。

这在Chrome,Firefox和Opera中完美运行(都经过彻底测试),但在IE8中根本不起作用。

通常我会责怪我的代码,但很明显这是一个纯粹的浏览器兼容性问题,这真的让我失望,因为我没有意识到ASP和VBScript真的需要改变才能在不同的浏览器上工作。

我已经附加了下面切换会话变量的代码,但我怀疑它是否与问题有关。

images = Request.QueryString("images")

If images <> "" Then
    If images = "show" Then
        Session("images") = "Show"
    ElseIf images = "hide" Then
        Session("images") = "Hide"
    End If
End If

问题的一个例子如下:

我显示一些项目并点击&#34;隐藏图像&#34;然后图像隐藏..

然后我重新加载页面,图像再次显示,Session变量已更改回&#34; show&#34;尽管代码中有NOWHERE指定返回到先前的值(使用Ctrl + F检查关键字&#34; images&#34;)

有没有其他人遇到过类似的问题,其中Session变量在IE中以不寻常的方式运行,或者可以提出解决方案?

谢谢,乔希

4 个答案:

答案 0 :(得分:3)

非常感谢,乔希 - 你走了。

您可以使用Server.URLEncode()(classicasp.aspfaq.com/general/...)方法来解决此问题。

答案 1 :(得分:2)

Classic ASP的服务器端代码与浏览器无关。更有可能出现问题的方法是您显示或隐藏该部分的方式。

检查您的代码,并特别注意您用于实际显示和隐藏的方法。使用IE8中的开发人员工具查看包含产品的块的样式。

答案 2 :(得分:1)

经过进一步研究后,我发现为什么我的页面无法通过Microsoft支持页面正常工作。

http://support.microsoft.com/kb/316112

我的网页网址中有下划线导致会话变量和Cookie无法保存。

希望这有助于将来的其他人

约什

答案 3 :(得分:0)

您是否尝试在分配会话值的同一页面中检索/显示会话值?我只是要求确定,因为需要往返服务器才能保存这些会话值。