【问题标题】:injecting data from URL to inputbox将数据从 URL 注入到输入框
【发布时间】:2014-09-04 06:48:35
【问题描述】:

我想将一些数据从 url 添加到具有唯一名称(不是 id )的输入框,因为我在页面上没有任何访问权限,我无法使用 ids 或某事对其进行编辑。

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

诸如此类:

site.com/index.php?test=text123

【问题讨论】:

    标签: javascript url input


    【解决方案1】:

    据我了解,您想从 URL 获取数据到您的输入字段中。

    首先,当你打开选项卡时,将选项卡的“文档”放入一个全局变量中

    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;
    }
    

    【讨论】:

    • 我在输入页面上没有任何访问权限我想通过编辑包含链接 (site.com/index.php?test=text123) 的发件人页面来执行此操作
    • 哦.. 输入页面是否以弹出窗口、iframe 或类似的方式打开?或者输入页面中是否有一些 javascript 或其他机制可用?
    • 是的,它会在新标签页中打开。页面中没有其他可用的 JavaScript 或 Seth,我对该页面没有任何控制权,它只有一个带有名称的输入框。期待您的回复。
    • 更新了我的答案。关键是使用 "documentTab = window.open('www.site.com/foo')".document 获取您打开的选项卡的文档。只有在打开选项卡的 url 和打开选项卡的页面具有相同的 url。否则这是不可能的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-19
    • 2020-09-29
    • 2014-03-12
    • 1970-01-01
    • 2017-05-17
    相关资源
    最近更新 更多