Javascript 用户通过表单提交关键字;如何获得';关键词';要在页面中修改的搜索URL的一部分?

Javascript 用户通过表单提交关键字;如何获得';关键词';要在页面中修改的搜索URL的一部分?,javascript,forms,url,onclick,Javascript,Forms,Url,Onclick,我有一个页面,页面上有许多URL,这些URL指向已保存的搜索。我想添加一个文本表单字段,用户可以在这些URL中添加关键字。目前,我在标题中使用以下javascript: function change_text(){ var changetext = document.getElementById("newtext").value; document.getElementById("text").innerHTML = changetext; } 在身体里: <a

我有一个页面,页面上有许多URL,这些URL指向已保存的搜索。我想添加一个文本表单字段,用户可以在这些URL中添加关键字。目前,我在标题中使用以下javascript:

function change_text(){
    var changetext = document.getElementById("newtext").value;
    document.getElementById("text").innerHTML = changetext;
}
在身体里:

   <a href="http://google.com/search?q=javascript%20url<span id="text">%20</span>">Saved Search</a>
   <input type="text" id="newtext"><input type="button" value="Press to change URL!"language="javascript" onClick="change_text()">

但是“span”标记被添加到URL中并破坏它。有没有简单的方法可以让用户在不需要Web服务器的情况下更新URL?

试试:

<a href='http://google.com/search?q='>Google</a>
<br>
<a href='http://yahoo.com/sd?='>Yahoo</a>
<br>
<input id='newLink'><input type="button" value="Press to change URLs!" onClick="change_text()">
<script>
a = document.getElementsByTagName('a');
href = new Array()
for(var i=0;i<a.length;i++){
a.id='link'+i;
href.push(a[i].href);
}

function change_text(){
keyword = document.getElementById('newLink').value;
for(var i=0;i<a.length;i++){
a[i].href = href[i]+keyword;
}

}

</script>



a=document.getElementsByTagName('a'); href=新数组()
对于(var i=0;i,您可以使用更类似于:

  <a id=text href="http://google.com/search?q=javascript%20url#">Saved Search</a>


function change_text(){
    var changetext = document.getElementById("newtext").value;
    var text = document.getElementById("text")
    text.attr("href", text.attr("href").replace("#", changetext);
}

函数更改_text(){
var changetext=document.getElementById(“newtext”).value;
var text=document.getElementById(“文本”)
text.attr(“href”,text.attr(“href”).replace(“#”,changetext);
}

也就是说,替换整个URL。您可能需要验证搜索页面上是否存在除#以外的其他内容(#只是一个示例,您可以使用任何适当的字符。)

这不是有效的html。url可能不包含标记。您可以通过JavaScript设置锚的href来执行您想要的操作。您可能应该对字符串进行加密以生成有效的搜索url,如
document.getElementById('link')。href=”http://google.com/search?q="+newLink
。是的,我误解了这个问题。只是添加了连接。您应该在输入值上调用
encodeURIComponent
,以确保URL将被转义。玩得好,先生。因为原始设置只设置了一次,所以更改文本将始终用正确的URL覆盖+1@Digital是的,我不知道为什么我没有原来不是,我现在加上。