Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在URL中声明变量,并在导航到页面时在Javascript中为其赋值_Javascript_Html_Query String_Location Href - Fatal编程技术网

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

在URL中声明变量,并在导航到页面时在Javascript中为其赋值,javascript,html,query-string,location-href,Javascript,Html,Query String,Location Href,我对HTML(以及一般的编程)比较陌生,我试图在导航到页面时声明一个变量并给它赋值。我有一行这样的代码: function() navigate {window.location = "myPage.html?myVar=1";} 当我运行该函数时,将加载新页面,但每当我尝试访问该变量时,都会收到一个错误,表明该变量未定义。但是,如果我在新页面中定义变量,例如var myVar,该值设置为null,而不是我在前面使用的导航函数中尝试将其设置为的值 我想不出任何解决方案,我的错误可能源于我对ur

我对HTML(以及一般的编程)比较陌生,我试图在导航到页面时声明一个变量并给它赋值。我有一行这样的代码:

function() navigate {window.location = "myPage.html?myVar=1";}
当我运行该函数时,将加载新页面,但每当我尝试访问该变量时,都会收到一个错误,表明该变量未定义。但是,如果我在新页面中定义变量,例如
var myVar,该值设置为null,而不是我在前面使用的导航函数中尝试将其设置为的值


我想不出任何解决方案,我的错误可能源于我对url末尾的
如何工作的误解,但我找不到关于它在任何地方如何工作的好解释

函数写入错误。检查javascript控制台是否有错误。下面是一个用javascript编写函数的示例:

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

我得提醒你,
navigate
这个名字太笼统了。我会给它起个名字,比如
navigateToMyPage

我重新阅读了这个问题,意识到您正在寻找一种从url获取参数的方法

您将需要执行以下操作:

    var navigateToMyPage = function() { window.location = "myPage.html?" + location.search; }
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];
}
以下是一个相关的问题和解决方案:

如果要传递javascript变量值,可以执行以下操作:

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

祝你好运

查询字符串变量用于在我们请求页面时将数据传递给服务器,但是您仍然可以使用javascript访问它们,检查此Stackoverflow问题

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

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

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

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

在Javascript中,通过URL传递值的最常见方式实际上是通过而不是通过

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

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

    var navigateToMyPage = function() { window.location = "myPage.html?" + location.search; }
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];
}
var位置_vars=[];
var location_vars_temp=location.hash.replace('#','')//删除散列符号
位置变量临时=位置变量临时拆分('&');//分解为键值对
对于(i=0;i
location\u vars['myOtherVar']

来引用它们。URL中的查询参数与JavaScript无关。它们主要由服务器处理。不过,您可以使用JavaScript访问它们,请看一看。URL、HTML和JavaScript是三种独立的技术。感谢您的快速响应。你发给我的链接上的答案对我来说似乎有点太复杂了,但我会试一试。@JakeChristensen是的,你想做的有点复杂,但没有看起来那么糟糕;)好吧,我忽略了所有复杂的东西,只使用location.search。我将编写自己的函数,以便从字符串中获取值。再次感谢。