jQuery 创建按钮放置 link 文本

jQuery created button dropping link text

我使用以下代码在 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>'

那应该直接将某人传递给上面提到的 link 并附加路径名。

当我手动将此 URL 粘贴到自己中时,这有效。但是,每次我单击此 link 时,URL 都会被截断为:

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

供参考:

为什么 Java 脚本/浏览器会像这样截断 link?

不确定这是否会导致您的问题,但每次构造 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>'

我想了想,又有了一个想法:

尝试将 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