Javascript 将JS变量/变量值从第一个JS文件中的函数传递到第二个文件

Javascript 将JS变量/变量值从第一个JS文件中的函数传递到第二个文件,javascript,variables,global-variables,Javascript,Variables,Global Variables,是否可以在两个不同的JS文件之间传递变量,而不使用节点JS,只使用普通JS?我只是在客户端做这件事,我没有使用服务器或其他任何东西 在第一个文件(first.js)中,我有一段(缩短的)代码: function appendImg(){ var img = document.createElement('img'); img.src = tempImg.src; document.body.appendChild(img); createImg(index++); img.

是否可以在两个不同的JS文件之间传递变量,而不使用节点JS,只使用普通JS?我只是在客户端做这件事,我没有使用服务器或其他任何东西

在第一个文件(first.js)中,我有一段(缩短的)代码:

function appendImg(){
  var img = document.createElement('img');
  img.src = tempImg.src;
  document.body.appendChild(img);
  createImg(index++);

  img.onclick = function(event){
    window.location.href = "second.html";
    }
}
其中“img”来自一系列操作,src赋值等,来自我在文件开头编写的给定图像数组

我想做的是,当我点击一个特定的图像时,它会将我重定向到另一个HTML页面,正如你所看到的,在那里我想显示与点击相同的图像

我很难做到这一点,因为我的img变量是在函数中声明的,而第二个JS文件无法识别它


我怎样才能改变这一点?

正如@Keith所说,您正在重新加载页面,因此会丢失所有内存。即使你把它放在全局范围内,其他函数可以读取它,它也不见了

您可以使用的一种方法是在url参数中放置一些引用:

function appendImg(){
  var img
  img = document.createElement('img');
  img.src = tempImg.src;
  document.body.appendChild(img);
  createImg(index++);

  img.onclick = function(event){
    window.location.href = "second.html?img_src=" + tempImg.src;
    }
}

然后在第二页中编写代码来检查位置的url参数。

完成此操作的最快方法是将图像作为查询字符串值传递。例如:

 // Make the image name safe to include in a URL
 const imageUrl = encodeURIComponent(img.src);

 // Pass the image as a query string value
 window.location.href = `second.html?image=${imageUrl}`;

second.html
上的JavaScript中,您需要解析查询字符串以获取图像路径。请参阅:

执行此操作时->
window.location.href=“second.html”您的浏览器页面正在重新加载,您在函数中所做的一切现在都不在内存中。除非你把你的网站变成一个水疗中心,否则你需要先把这个图片存储在某个地方,然后在第二个页面中再次检索它。我该怎么做?