【问题标题】:how to insert a url/variable into onclick?如何在 onclick 中插入 url/变量?
【发布时间】:2009-09-14 19:40:27
【问题描述】:

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

我试图代替历史按钮来执行此操作,因为该按钮位于一个框架内,并且单击其他框架会改变历史的实际情况。

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

感谢您的帮助。

【问题讨论】:

标签: javascript variables onclick


【解决方案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

【讨论】:

    【解决方案2】:

    你不应该使用

    parent.location = var ?

    【讨论】:

      【解决方案3】:

      从 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];
      

      问候, 吉什努

      【讨论】:

        【解决方案4】:

        你有没有尝试过类似的东西

        <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 变量。思路是一样的。

        【讨论】:

          猜你喜欢
          • 2014-10-16
          • 1970-01-01
          • 1970-01-01
          • 2011-04-01
          • 2018-05-10
          • 1970-01-01
          • 1970-01-01
          • 2018-04-04
          • 2018-09-27
          相关资源
          最近更新 更多