1

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

<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 文件。

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

我怎样才能做到这一点?

4

1 回答 1

5

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

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

参见 MDN:window.location对象


旁注:如果您不想提交表单,请使用输入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文件中,以进行结构和行为的缓存和分离。

于 2013-01-21T22:13:53.037 回答