是否可以使用主页面中的src在popup.php窗口中显示图片?

时间:2010-12-17 21:28:45

标签: javascript popup window

我有一个带有图片的页面,我想在点击它们时在popup.php中显示。 我希望弹出窗口显示一张图片(我点击的图片),一些文字和一个打印按钮。 我在页面上这样做: <a href="#" onClick="popup()"><img src="graphics/picture1.png" width="340" height="200" border="0"/></a>

在JS文件中:

function popup()
{
window.open('popup.php', 'window', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=520,height=400,left=350,top=100');
}

function showImg(img) 
{
  var imageSrc = "imageName/imagePath.png";
  if(img.src != imageSrc){ 
    img.src = imageSrc;
  }
}

在popup.php中:

<img src="graphics/picture03.png" onload="showImg(this)" />

应该有一个明显的方法,但我找不到它。

6 个答案:

答案 0 :(得分:0)

我认为将图像名称和文本内容添加到URL将是显而易见的方式。

popup.php?image=myImage.gif&text=Say%20something%20witty%20here

答案 1 :(得分:0)

嗯,你想让你的弹出窗口包含图像的持有者(看起来你已经有了),但是你还需要有一个文本夹。你的popup.php应该有类似<div id="textHolder"></div>的东西 - 然后你的javascript函数需要接受相应的文本,并将其填充到textHolder div中。

我不确定你是如何调用这些JS函数的,或者从哪里调用 - 所以有些代码可能需要更改 - 它应该是调整的......

function showImg(img, textHolderObj, text) 
{
  var imageSrc = "imageName/imagePath.png";
  if(img.src != imageSrc){ 
    img.src = imageSrc;
  }
  textHolderObj.innerHTML= text
}

答案 2 :(得分:0)

如果这么简单,你可以创建它:

var win = window.open('', 'win', 'toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=520,height=400,left=350,top=100');

var img = win.document.createElement('img');
    img.src = 'image.png';
    img.alt = 'Some text';

var label = win.document.createElement('p');
    label.innerHTML = 'Some text';

var button = win.document.createElement('a');
    button.href = 'javascript:window.close()';
    button.innerHTML = 'Close';

win.document.body.appendChild(img);
win.document.body.appendChild(label);
win.document.body.appendChild(button);

答案 3 :(得分:0)

我不太清楚这个问题。您想要访问在打开弹出窗口的页面中定义的功能吗?您应该可以使用opener.showImg(this)

答案 4 :(得分:0)

可以使用变量

创建新的弹出窗口
top.mydocument=window.open('','window','toolbar=no,location=no,
status=no,menubar=no,scrollbars=no,resizable=no,
width=520,height=400,left=350,top=100');

然后使用document.write撰写内容:

top.mydocument.document.write(
  '&lt;html&gt;&lt;head&gt;&lt;/head&gt;'
   +'&lt;body bgcolor=white onLoad="self.focus()"&gt;'
   +'imageName/imagePath.png'
   +'&lt;/body&gt;&lt;/html&gt;'
 )

确保关闭它。

top.mydocument.document.close()

答案 5 :(得分:0)

你的弹出窗口不知道你点击了什么图像。你需要这样做:

onClick="popup('imgSrc')"

并在您的窗口参考:

window.open('popup.php?imgSrc='+imgSrc, ...

然后......你的弹出窗口必须运行url vars,但php现在知道它在寻找什么:

<?php echo '<img src="' . $_GET["imgSrc"] . '" />';  // this is going to load the image, so you don't need the onLoad()