将数据从URL注入到inputbox

时间:2014-09-04 06:48:36

标签: javascript url input

我想将一些来自url的数据添加到一个具有唯一名称(不是id)的输入框中,因为我在页面上没有任何访问,所以无法使用id或sth编辑它。

<input type="text" name="test">

和那样:

  

site.com/index.php?test=text123

1 个答案:

答案 0 :(得分:1)

根据我的理解,您希望将来自URL的数据放入输入字段。

首先,当您打开标签页时,请输入&#39;文档&#39;选项卡的全局变量

var url = "www.url.com"; //the url of the page to open in tab
var tabInstance= window.open(url);

tabDocument =  tabInstance.document; //tabDocument is a global variable

现在,假设您要放入选项卡的数据位于打开选项卡的页面的URL中

function populateInputFields(){
    var data = parseURLParams(document.URL); //get url data in json format.
    if(!data) return; //if no get parameters found
    //iterate json
    for(var key in data){//for each key in the json data
        var value = data[key]; //get the 'value' for corresponding key 
        var element = tabDocument.getElementsByTagName(key)[0];//get the input element 
        if(element && element.tagName == 'input'){//check if element exists and is of type input
            element.value = value;
        }

    }
}

parseURLParams从这里开始实施:How to read GET data from a URL using JavaScript?

function parseURLParams(url) {
    var queryStart = url.indexOf("?") + 1,
        queryEnd   = url.indexOf("#") + 1 || url.length + 1,
        query = url.slice(queryStart, queryEnd - 1),
        pairs = query.replace(/\+/g, " ").split("&"),
        parms = {}, i, n, v, nv;

    if (query === url || query === "") {
        return;
    }

    for (i = 0; i < pairs.length; i++) {
        nv = pairs[i].split("=");
        n = decodeURIComponent(nv[0]);
        v = decodeURIComponent(nv[1]);

        if (!parms.hasOwnProperty(n)) {
            parms[n] = [];
        }

        parms[n].push(nv.length === 2 ? v : null);
    }
    return parms;
}