这是浏览器缓存问题吗?

时间:2010-10-07 02:47:50

标签: javascript jquery xhtml

您可以检查这是否是浏览器缓存问题?

我有这种情况,我有一个表格,显示这样的数据和下面的链接 发送给你另一个网址。一次只能点击一行。

<table>
    <thead>
        .
        .
    </thead>
    <tbody>
        <tr>
            <td><input type=""checkbox" value="1" name="_chk"/></td>
            <td>Field1</td>
            <td>Field2</td>
        </tr>
    </tbody>
</table>
<a href="/myApp/url.htm" id="myLink">Change</a>

点击链接后,我使用jquery

将当前点击ID添加到href属性
$(document).ready(function(){
    $("#myLink").click(function(){
        var transID = $("input[name='_chk']:checked").val();
        var currHref = $(this).attr("href");

        $(this).attr("href", currHref + "?transID=" +transID);
    });
});

首次点击时,其ok和事务ID会作为参数附加到新的url字符串,如/myApp/url.htm?transID=1?

问题是,当我单击后退按钮然后单击另一行时,url参数字符串会加倍 像这样/myApp/url.htm?transID=1?transID=2

这是否是浏览器缓存问题,是否有针对此的解决方法?

2 个答案:

答案 0 :(得分:2)

是的,这是浏览器缓存的javascript / html状态。如果您从页面之间的表单控件传递值,我建议您使用默认方式,即使用表单和提交按钮。

如果你坚持使用Javascript,那么不要获取属性“href”,硬编码url(不要从href属性获取它)并附加参数并使用Javascript重定向到该页面。

尝试使用它,如果它有效(但这只是对代码的快速修复):

$(document).ready(function(){
    $("#myLink").click(function(){
        var transID = $("input[name='_chk']:checked").val();
        var currHref = "/myApp/url.htm";

        $(this).attr("href", currHref + "?transID=" +transID);
    });
});

答案 1 :(得分:1)

试试这个......

$(document).ready(function() {
    var baseUrl = "/myApp/url.htm";

    $("#myLink").click(function(){
        var transID = $("input[name='_chk']:checked").val();
        $(this).attr("href", baseUrl + "?transID=" +transID);
    });
});