如何在onclick中插入url / variable?

时间:2009-09-14 19:40:27

标签: javascript variables onclick

这不能太复杂,但令我感到困惑 - 我想通过网址传递变量(www.site.com/index.html?var=whatever.htm)并在onclick中使用变量函数使onclick按钮使用变量作为url转到..onclick。

我试图用这个来代替历史记录按钮,因为按钮在一个框架内,而点击其他框架会改变历史记录实际上是什么。

我尝试了<input value="Go Back" onclick="parent.location(var)" type="button">,但很明显我错过了一些关于如何让javascript识别该变量的内容。

感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

您需要使用document.location.search来访问查询字符串。然后,您需要解析该字符串以获取变量的值。

在你的onclick处理程序中,你应该将document.location设置为变量的值。

我建议在页面加载时添加您的点击处理程序,而不是使用HTML元素内联它。

window.onload = function () {
    document.getElementById("go").onclick = function () {
        var tokens = /\bvar=([^&]+)/.exec(document.location.search);

        if (tokens) {
            document.location = decodeURIComponent(tokens[1]);
        }
    };
};

编辑:有关解析查询字符串的更通用机制,请尝试以下操作:http://gist.github.com/143101

答案 1 :(得分:1)

你不应该使用

parent.location = var?

答案 2 :(得分:0)

你有没有试过像

这样的东西
<script type="text/javascript">
   var url = "http://gohere.com";
</script>
<input value="Go Back" onclick="document.location(url)" type="button" />

您还可以使用已设置“后退”位置的常规功能,例如

<script type="text/javascript">
  function goBack(url){
    document.location(url);
  }
</script>

在这种情况下,您需要以某种方式设置url变量。这个想法是一样的。

答案 3 :(得分:0)

从URL访问变量:   首先,没有自动访问url参数的方法。所以我们需要将网址拆分为3组。

http://www.someurl.com/doSomeThing?one=1&two=2

我们需要得到一个= 1和两个= 2个部分。我们可以通过正则表达式访问它。

  var regexString = "[\\?&]var=([^&#]*)";
  var regex = new RegExp( regexString );
  var results = regex.exec( window.location.href );

如果结果是数组,则第一个元素将是您的值。

window.location=results[1];

此致 吉希纳