基于文本框的Javascript URL重定向

时间:2013-01-21 22:10:08

标签: javascript javascript-events

所以,我需要根据输入的代码创建一个重定向系统。目前我有:

<form id="form1" name="form1" method="post" action=""> 
  <pre>     <input type="text" name="meow" id="meow" /> <input type="submit" name="submit" id="submit" value="Submit" onclick="javascript:window.location.href('http://foo.exaple.com/bar/' + document.getElementById("meow").value + '.zip')"/>

基本上,我需要上面的脚本在foo.example.com/bar/中下载一个zip文件,基于在文本框中输入的代码。

当我在文本框中输入代码“ugh”并点击提交时,我想在http://foo.example.com/bar/ugh.zip下载文件

我该怎么做?

1 个答案:

答案 0 :(得分:4)

.href不是函数/方法,它是一个为您分配有效URI字符串的属性:

location.href = 'http://foo.exaple.com/bar/' + document.getElementById('meow').value + '.zip';

请参阅MDN:window.location Object


附注:如果您不想提交表单,请使用输入type="button"代替提交。

在我们的Web 2.0时代,混合结构和行为(HTML和JS)通常是不受欢迎的,所以:

<input type="button" name="submit" id="submit" value="Submit">
<script>
document.getElementById('submit').onclick = function() {
    location.href = 'http://foo.exaple.com/bar/' + document.getElementById('meow').value + '.zip';
};
</script>

这也适用于所有浏览器,因为IE6也可以保存一些令人头疼的问题,例如在标记内混合引号。 =]
它也更容易维护,以后您甚至可以将页面的JS移动到单独的.js文件中,以便缓存和分离结构和行为。