1

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

我正在尝试代替历史按钮来执行此操作,因为该按钮位于一个框架内,并且单击其他框架会更改实际的历史记录。

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

谢谢你的帮助。

4

4 回答 4

1

你不应该使用

父位置=变量?

于 2009-09-14T20:04:08.463 回答
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

于 2009-09-14T19:46:23.090 回答
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 变量。这个想法是一样的。

于 2009-09-14T19:48:51.027 回答
0

从 URL 访问变量:首先,没有自动访问 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];

问候, 吉什努

于 2009-09-14T20:22:08.290 回答