【问题标题】:Changing url via html button with JS使用 JS 通过 html 按钮更改 url
【发布时间】:2011-12-11 07:20:39
【问题描述】:

我正在尝试使用不同的 html 按钮将用户发送到其个人资料的不同部分(社交、新闻、电子邮件等),因此我制作了一个简单的 JS 函数,并将其链接到 html 中。基本上,当用户单击按钮时,它应该在当前 URL 后面附加一个字符串,然后访问该 URL。然而,在点击时,什么也没有发生:

profile.html

<head>
  <title>Profile</title>
</head>
<script type="text/javascript" src="profile.js"></script>
<body>
  <h1 align=center>Welcome to your OmniCloud Profile</h1>
  <h2 align=center>Access your content below</h2>
  <button name='email' onclick='gotoPage("email")'>Email</button> <br/>
  <button name='social' onclick='gotoPage("social")'>Social</button> <br/>
  <button name='news' onclick='gotoPage("news")'>News Feeds</button> <br/>
  <button name='media' onclick='gotoPage("media")'>Media</button> <br/>
</body>

这里是 JS 脚本

function gotoPage(var url) {
  var newurl = document.write(location.href)
  newurl += url
  window.location.assign(newurl)
}

我正在使用 Django,所以如果有更好的方法来处理这个问题(也许使用 urls.py,请随意包含它!

【问题讨论】:

    标签: javascript html django url button


    【解决方案1】:

    在函数的形参中定义变量时,var 必须省略。此外,要声明变量,您应该使用document.write(variablevalue)。可以通过为location.href 属性设置一个新值来更改当前位置。

    function gotoPage(url) {
      var newurl = location.href;
      newurl += url;
      window.location.href = newurl;
    }
    

    我建议看看 MDN: JavaScript guide

    【讨论】:

    • 这似乎不会将浏览器发送到新的 url。我是否正确包含了 JS 文件?
    • 检查文件名是否拼写正确。服务器通常在 Linux 下运行,Linux 具有区分大小写的文件系统。此外,您当前的代码具有以下结果。 当前页面http://foo/media。 **点击“新闻”,开通:**,http://foo/medianews。这可能是不希望的。不要使用var newurl = location.href;,而是定义var newurl = "http://baseurl/";
    • 当前页面是baseurl/(user id)/ 所以它应该附加在斜杠之后。即便如此,当它尝试访问/1social 时,我应该看到一个错误,但它甚至没有走那么远
    • 没关系,必须将依赖项添加到静态文件。一切顺利,感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2019-04-23
    • 2013-03-05
    • 1970-01-01
    • 2017-05-31
    • 1970-01-01
    • 2017-03-29
    • 2013-02-22
    • 2016-09-11
    相关资源
    最近更新 更多