Javascript jQuery创建了按钮删除链接文本

Javascript jQuery创建了按钮删除链接文本,javascript,jquery,html,greasemonkey,Javascript,Jquery,Html,Greasemonkey,我使用以下代码在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></

我使用以下代码在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:
  • 路径名:/class/1/info

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

不确定这是否会导致您的问题,但每次构造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>'
var pathname=window.location.pathname;
var html=''

我想到了这一点,有了另一个想法:

尝试将
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>'
var html=''
我认为GET输入值总是覆盖
action
参数的查询字符串中的值


另请参见:

原始路径名是什么?添加到上面:so/class/1/info是路径名嗯,我很困惑。请参阅,
window.location.pathname
是动态的。是。我正在运行的GreaseMonkey脚本中使用此脚本,因此需要动态标识当前路径以及指向另一个URL的路径
:S
不确定这是否适用于搜索引擎优化友好的URL:
https://apples.com/class/1/info
…谢谢你的提醒。不过,不幸的是,这似乎并不能解决问题。@NickP:我怀疑您的问题不在浏览器/Javascript或其他代码中。我用你的输入尝试了你的代码,它按预期工作。也许有一些URL重写正在服务器上进行(或一些重定向)?也许页面上的其他JS会影响表单的提交方式?谢谢Tom。奇怪的是,当我直接粘贴到浏览器中时,这似乎加载了正确的页面,因此代码中肯定有其他内容。就像charmGreat一样工作,我很高兴能提供帮助。:)
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>'