【问题标题】:passing an Image array from one window to another and displaying the images in the new window in javascript将图像数组从一个窗口传递到另一个窗口并在 javascript 的新窗口中显示图像
【发布时间】:2015-03-26 03:48:20
【问题描述】:

我陷入了一个特殊的问题。 我必须通过单击按钮将图像数组从一个 HTML 窗口传递到另一个。我传递的数组名称是compareImageArray,我已在mainPage.html 中将其声明为全局变量。 我在这样的新窗口中传递这个数组:

 window.open('/comparePopup',compareImageArray,'_blank','popUpWindow', 'status=0,width=620,height=430,resizable=yes, scrollbars=yes, toolbar=yes')

comparePopup.html(这是我向其发送数组的新窗口)中,我试图获取 HTML 元素 pic1、pic2、pic3 中的 Image 数组元素,如下所示:

<div id="comparePicDiv" style="display:block;">
    <img id="pic1">
    <img id="pic2">
    <img id="pic3"> 

我在 javascript 中这样做是这样的:

<script type="text/javascript">
// alert(compareImageArray[0])
compareImageArray = window.opener.compareImageArray;

var pic1= document.getElementById("pic1");
var pic2= document.getElementById("pic2");       
var pic3= document.getElementById("pic3");

pic1.src = compareImageArray[0];           
pic2.src = compareImageArray[1];
pic3.src = compareImageArray[2];

我可以在警报alert(compareImageArray[0]) 中查看图像 url,这意味着该 URL 已到达此页面。但是,img 标签并没有填充这些图像。这可能是什么原因?请帮忙。提前致谢。

【问题讨论】:

  • 您不使用 window.open() 发送数组。这是规范:w3schools.com/jsref/met_win_open.asp 但是您可以通过链接将数组信息作为查询字符串发送,例如 comparePopup.html?pic1_pic2_pic3.... (您需要一种发送数组信息的方法)在您的 comparePopup.html 中,您需要 Javascript 来读取查询字符串信息并将信息分段到数组中。
  • 但是我如何在 comparePopup.html 中获取整个图像数据(即警报消息。)。警报为我提供了图像的整个数据 URL。我认为问题在于我获取图像或在图像标签中捕获它的方式。你不这么认为吗?我在这里忽略了一些非常琐碎的事情吗?

标签: javascript html arrays image window


【解决方案1】:

在朋友的帮助下解决了这个问题。正如我所怀疑的,这不是因为我传递数组的方式。 compareImageArray 被声明为全局的,并且在 comparePopup.html 中被完美地检索,正如警报所证实的那样。

问题在于,由于图像是在正文加载时加载的,而不是在任何按钮单击时加载的,所以我必须在 Javascript 之前声明图像元素(我没有这样做。)。结果,它无法识别pic1pic2pic3 是什么。 现在它工作正常!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-11
    相关资源
    最近更新 更多