代码之家  ›  专栏  ›  技术社区  ›  NickP

jQuery创建的按钮删除链接文本

  •  1
  • NickP  · 技术社区  · 9 年前

    我用以下代码在Java脚本中创建了一个动态按钮:

    var pathname = window.location.pathname;    
    var html = '<div id="gmSomeID"><form action="https://apples.com/active/index?u='+pathname+'"><input id="tapButton" type="submit" value="TAP" /></form></div>'
    

    这应该将某人直接传递到上面提到的附加路径名的链接。

    当我手动将这个URL粘贴到自己的网站上时,它就起作用了。但是,每次单击此链接时,URL都会被截断为:

    https://apples.com/active/index?
    

    供参考:

    为什么JavaScript/Browser会截断这样的链接?

    2 回复  |  直到 9 年前
        1
  •  1
  •   Tom Pažourek    9 年前

    我想了一下,有了另一个想法:

    试着把 u 参数作为隐藏输入,而不是操作。

    var html = '<div id="gmSomeID"><form action="https://apples.com/active/index"><input type="hidden" name="u" value="'+pathname+'"/><input id="tapButton" type="submit" value="TAP" /></form></div>'
    

    我认为GET输入值总是覆盖 action 参数

    另请参见: submitting a GET form with query string params and hidden params disappear

        2
  •  1
  •   Tom Pažourek    9 年前

    不确定这是否会导致问题,但每次构造URL的参数时,都应该对值进行URL编码。

    var pathname = window.location.pathname;    
    var html = '<div id="gmSomeID"><form action="https://apples.com/active/index?u='+encodeURIComponent(pathname)+'"><input id="tapButton" type="submit" value="TAP" /></form></div>'