Internet Explorer后退按钮和JavaScript

时间:2010-12-21 16:58:32

标签: javascript asp.net internet-explorer

我有一个asp.net页面,它使用动态填充的DropDownLists和OnSelectedIndexChanged事件。几天前,我发现了一个缺陷,即按下后退按钮会从浏览器的缓存中加载上一页,因此DropDownList已经有一个选定的索引(因此OnSelectedIndexChanged事件不会正常触发,因为它没有选择默认值指数)。我理解了这个问题,并用Google搜索。由于浏览器与页面的交互方式,这是一个众所周知的问题,没有简单的解决方案。经过一番思考后,我选择了一个简单的javascript解决方案来重置ddls:

        var gvTable = document.getElementById("foo");
        if (gvTable != null)
        {
            var actionDDls = gvTable.getElementsByTagName("select");
            for (var i in actionDDls) {
                actionDDls[i].value = 0;
            }
        }

这很好用,我很高兴。直到我在IE中测试它。在IE中,它似乎运行脚本,然后加载DDL的缓存值。也就是说,我观察到DDL捕捉回0索引,然后突然下降到之前选择的值。

我在这里有点亏本,我通常在firebug中调试,但这在firefox和chrome中完美运行。有什么建议?想法?

谢谢。

1 个答案:

答案 0 :(得分:1)

您是否碰巧在.NET 3.5中查看历史记录点功能? http://www.pin5i.com/showtopic-16198.html。这可以通过自定义状态管理功能帮助解决当前问题。

HTH。