Можно ли отображать картинки в окне popup.php, используя src с главной страницы? - PullRequest
0 голосов
/ 18 декабря 2010

У меня есть страница с картинками, которую я хочу отображать в 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 голосов
/ 01 мая 2013

ваше всплывающее окно не знает, на какое изображение вы нажали.вам нужно сделать это:

onClick="popup('imgSrc')"

и в ссылке на ваше окно:

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

затем ... ваше всплывающее окно должно быть убрано из URL-адресов, но теперь php знает, чтоего ищет:

<?php echo '<img src="' . $_GET["imgSrc"] . '" />';  // this is going to load the image, so you don't need the onLoad()
0 голосов
/ 18 декабря 2010

Можно создать новое всплывающее окно, используя переменную

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()
0 голосов
/ 18 декабря 2010

Я не очень хорошо понимаю вопрос.Вы хотите получить доступ к функции, которая была определена на странице, которая открыла всплывающее окно?Вы должны быть в состоянии использовать opener.showImg(this)

0 голосов
/ 18 декабря 2010

Если это так просто, вы можете создать его:

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);
0 голосов
/ 18 декабря 2010

Хорошо, вы хотите, чтобы в вашем всплывающем окне содержался держатель для изображения (который, кажется, уже есть), но вам также понадобится держатель для вашего текста.Ваш 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
}
0 голосов
/ 18 декабря 2010

Я думаю, что добавление имени изображения и текстового содержимого в URL было бы очевидным способом.

popup.php?image=myImage.gif&text=Say%20something%20witty%20here
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...