编程语言
首页 > 编程语言> > Javascript:window.location.search不更新?

Javascript:window.location.search不更新?

作者:互联网

如果用户在搜索面板(在页面上)输入URL,则需要更新URL中的搜索(查询)参数.我正在尝试:

$( document ).ready(function() {
    if ($('.o_website_license_search_panel').length) {
        $('.o_website_license_search_panel .o_search_submit').click(function () {
            var search = $.deparam(window.location.search.substring(1));
            console.log('before update')
            console.log(window.location.search)
            search.license_key = $(".o_website_license_search_panel input[name='license_key']").val();
            console.log('new obj ', search, $.param(search))
            window.location.search = $.param(search);
            console.log('after update')
            console.log(window.location.search)
        });
    }
});

我得到以下输出:

before update
web.assets_frontend.js:1254 ?license_state=cancel
web.assets_frontend.js:1255 new obj  {license_state: "cancel", license_key: "test2"} license_state=cancel&license_key=test2
web.assets_frontend.js:1256 after update
web.assets_frontend.js:1257 ?license_state=cancel

如您所见,window.location.search保持不变.我有想念的东西吗,还是打算这样?

解决方法:

设置搜索(或哈希以外的其他任何属性)会导致页面重新加载.该属性将继续具有其先前的值,直到发生这种情况为止,这就是为什么您在日志记录语句中看到该先前的值的原因.记录旧值之后,除非页面上的代码阻止了此情况的发生,否则该页面将重新加载新的查询字符串,此时location.search会显示新字符串.

更多:window.location‘s properties on MDN

标签:window-location,javascript,jquery
来源: https://codeday.me/bug/20191110/2013679.html