将查询字符串从aspx传递回html回到aspx,使用javascript,链接问题

时间:2011-01-20 19:05:43

标签: javascript html query-string hyperlink

我将上一页的查询字符串传递给此页面,然后我想将其传递到下一页,但它无效。

<script type="text/javascript">
           function qs(search_for) {
        var query = window.location.search.substring(1);
        var parms = query.split('&');
        for (var i=0; i<parms.length; i++) {
            var pos = parms[i].indexOf('=');
            if (pos > 0  && search_for == parms[i].substring(0,pos)) {
                return parms[i].substring(pos+1);;
            }
        }
        return "";
    }
    </script>

这是链接

<a href="http://www.TEST.com/TEST/TEST/TEST.aspx?comp=" & <script type="text/javascript"> document.write(qs("comp")); </script> & "name=test" >CLICK HERE </a></font></b></p>

3 个答案:

答案 0 :(得分:1)

可能更简单,更灵活,更易于维护,只需将其粘贴在隐藏字段中,然后使用简单的document.getElementById()检索它。

答案 1 :(得分:0)

  • Page 1创建URL查询字符串

  • 第2页将此添加到您的第二页
    <asp:hiddenfield runat="server" id="hdncomp" value=""/> <asp:hiddenfield runat="server" id="hdnname" value=""/>

    现在,在您的加载事件中运行以下代码。

    Me.hdncomp = Request.QueryString("comp")
    Me.hdnname = Request.QueryString("name")
    
  • 最后,当您转到使用hdncomp和hdnname中的值作为参数值时。例如:

Response.Redirect("page3.aspx?comp=" & hdncomp & "&name=" & hdnname)

未经测试的代码

答案 2 :(得分:0)

好吧,你的语法非常错误。 在关闭第一个元素标记之前,您无法编写新元素:<element <element2 /> />。 这是一个你可以使用的功能:

function createLink(address,param,text){
   address += ((address.indexOf('?') == -1) ? "?" : "&") 
      + param 
      + "="
      + qs(param);
    document.write(''+text+'');
}
然后,当你想通过插入一个脚本标签来插入所需的链接时,调用带有所需参数的“createLink”函数:
<script type="text/javascript">
createLink("http://www.TEST.com/TEST/TEST/TEST.aspx?name=test","comp","CLICK HERE");
<script/>

希望这有帮助!

P.S。 :你应该只使用一个分号,而不是一次只使用两个分号。