我在Java脚本中创建了一个dyanmic按钮,其代码如下:
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都会截断为:
https://apples.com/active/index?
供参考:
为什么JavaScript /浏览器会截断这样的链接?
答案 0 :(得分:1)
不确定这是否会导致您的问题,但每次构建网址参数时,都应对这些值进行网址编码。
所以,为了正确,代码应如下所示:
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>'
答案 1 :(得分:1)
我想到了这个,并有另一个想法:
尝试将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