声明URL中的变量,并在导航到页面时在Javascript中为其赋值

时间:2013-02-02 21:00:50

标签: javascript html query-string location-href

我对HTML(以及一般的编程)相对较新,我正在尝试声明一个变量,并在导航到页面时为其赋值。我所拥有的是一行代码:

function() navigate {window.location = "myPage.html?myVar=1";}

当我运行该函数时,将加载新页面,但每当我尝试访问该变量时,我都会收到错误消息,指出变量未定义。但是,如果我在新页面中定义变量,例如<script>var myVar;</script>,则该值将设置为null,而不是我尝试在之前使用的导航功能中将其设置为的值。

我无法想到任何解决方案,我的错误可能源于我对网址末尾?如何运作的误解,但我找不到一个很好的解释无处不在。

3 个答案:

答案 0 :(得分:0)

该功能写错了。检查您的JavaScript控制台是否有错误。以下是在javascript中编写函数的方法示例:

    var navigate = function() { window.location = "myPage.html?myVar=1"; }

OR

    function navigate() { window.location = "myPage.html?myVar=1"; }

我谨慎提醒,名称navigate过于笼统。我会把它命名为navigateToMyPage

我重读了这个问题并意识到您正在寻找一种从网址获取参数的方法。

你会想做这样的事情:

    var navigateToMyPage = function() { window.location = "myPage.html?" + location.search; }

以下是相关问题和解决方案: How to get the value from the GET parameters?

OR

如果你想传递一个javascript变量值,你可以这样做:

    var myVar = 1 + 1;
    var navigateToMyPage = function() { window.location = "myPage.html?myVar=" + myVar; }
祝你好运!

答案 1 :(得分:0)

查询字符串变量用于在我们请求页面时将数据传递到服务器,但您仍然可以使用javascript访问它们,请查看此Stackoverflow问题How can I get query string values in JavaScript?

答案 2 :(得分:0)

查询字符串 - 在客户端和服务器端

Javascript是一种客户端脚本语言,query string不会自动处理成变量。这通常由服务器端脚本语言完成,如PHP。

例如,在PHP的服务器端,通常会将查询字符串值自动分配给$_GET数组,或者在这种情况下为$_GET['myVar']。但在Javascript中并非如此,您需要自己处理查询字符串。

片段标识符 - 将网址值传递给Javascript

在Javascript中,通过网址传递值的最常用方法实际上是通过fragment identifier而不是通过query string

例如,您可以传递两个变量:

myPage.html#myVar=1&myOtherVar=2

在JavaScript中,location.hash变量将自动分配值#myVar=1&myOtherVar=2,您可以按此进一步处理:

var location_vars = [];
var location_vars_temp = location.hash.replace('#',''); // Remove the hash sign
location_vars_temp     = location_vars_temp.split('&'); // Break down to key-value pairs
for (i=0; i < location_vars_temp.length; i++) {
    location_var_key_val = location_vars_temp[i].split('='); // Break down each pair
    location_vars[location_var_key_val[0]] = location_var_key_val[1];
}

此时location_vars将是一个填充了传递值的数组,您可以使用location_vars['myVar']location_vars['myOtherVar']

来引用它们