Javascript 基于URL字符串中的变量填充属性值

Javascript 基于URL字符串中的变量填充属性值,javascript,jquery,url,query-string,Javascript,Jquery,Url,Query String,假设我在我的网站上的一个页面:。是否可以使用JavaScript或jQuery代码从URL字符串获取变量“search”并将其填充到搜索框的值中 基本上,我会有我的常规识别搜索框: <input type="text" title="Search" id="search_box" /> 谢谢你 用[]包装它意味着如果找不到该值,它将返回一个空字符串,而不是未定义的(该字符串将设置为输入的值,并显示为未定义的字符串) jQuery (/*get-get-param*/||[])这

假设我在我的网站上的一个页面:。是否可以使用JavaScript或jQuery代码从URL字符串获取变量“search”并将其填充到搜索框的值中

基本上,我会有我的常规识别搜索框:

<input type="text" title="Search" id="search_box" />
谢谢你

[]
包装它意味着如果找不到该值,它将返回一个空字符串,而不是
未定义的
(该字符串将设置为输入的
,并显示为
未定义的
字符串)

jQuery

(/*get-get-param*/||[])
这样,如果找不到get-param,代码就不会出错。

您可以使用(由您自己编写的)提取URL的任何部分:具体地说,
$.uri(window.location.href)。at(“query”)。搜索
会为所述URL生成“stackoverflow”

整个流程将是注册一个回调(在页面加载时触发),以分析URL并设置该表单元素的值,即:

<script>
  $(document).ready(function () {  
    $('#Search').val($.uri(window.location.href).at("query").search); 
  })
</script>

$(文档).ready(函数(){
$('#Search').val($.uri(window.location.href).at(“query”).Search);
})

您可以尝试此功能:

function getSearchVariable(variable) 
{
    var query = window.location.search.substring(1);
    var vars = query.split("&");
    for (var i=0;i<vars.length;i++) {
        var pair = vars[i].split("=");
        if(pair[0] == variable){
            return unescape(pair[1]);
        }else{
            return false;
        }
    }
}
函数getSearchVariable(变量) { var query=window.location.search.substring(1); var vars=query.split(&);
对于(var i=0;iI不知道为什么它不起作用:
$('#search_box').val(函数(){return(window.location.searchresults.match(/(?:^ |[&;])search=([^&;]+/)| |[])[1]);
div的id实际上是搜索框,页面的url实际上是searchresults.asp。我相应地修改了代码,但它不起作用。你知道为什么吗?@user你的代码是错误的。你为什么把
searchresults
放在那里?这也是另一个很好的功能:(比我的要简单一点)我意识到我不能编辑这些,因为我对JavaScript几乎一无所知。实际的页面和id与我最初发布的页面和id不同。搜索输入的id实际上是
search\u box
,页面实际上是SearchResults.asp。我如何更改上面的代码以使其适合我?哇,这非常有效。一位专业人士问题是当搜索框中没有任何内容时,它会显示false。我刚刚将
返回false;
更改为
返回;
并成功!另一件事是URL字符串将空格更改为“+”。我如何让脚本将“+”更改回空格。啊,是的,我将false留在那里进行错误检查;将其替换为
返回“”;
如果是最好的选择。我已经更新了代码,将加号替换为空格。谢谢,加号仍在返回。另外,另一个令人烦恼的问题是,如何让它只匹配“搜索”我还有变量“搜索”,当我在这些页面上时,我在搜索框中看到“兴”。
$('#Search').val(function() {
    return (window.location.search.match(/(?:^|[&;])Search=([^&;]+)/) || [])[1];
});
<script>
  $(document).ready(function () {  
    $('#Search').val($.uri(window.location.href).at("query").search); 
  })
</script>
function getSearchVariable(variable) 
{
    var query = window.location.search.substring(1);
    var vars = query.split("&");
    for (var i=0;i<vars.length;i++) {
        var pair = vars[i].split("=");
        if(pair[0] == variable){
            return unescape(pair[1]);
        }else{
            return false;
        }
    }
}
<script type="text/javascript">
    function getSearchVariable(variable) 
    {
        var query = window.location.search.substring(1);
        var vars = query.split("&");
        for (var i=0;i<vars.length;i++) {
            var pair = vars[i].split("=");
            if(pair[0] == variable){
                return unescape(pair[1]).split("+").join(" ");
            }else{
                return "";
            }
        }
    }

    $(document).ready(function(){
        $("#search_box").val(getSearchVariable("Search"));
    });
</script>