Bir açılır pencere keyfi html geçen

2 Cevap php

Ben şöyle bir PHP dosyasından benim makeWindows işlevini arıyorum:

echo "<a href='#' onclick=\"makewindows(" . $html . "); return false;\">Click for full description </a></p>";

Bu $ html gelen html içeren bir popupwindow sonuçlanır doğru html oluşturur. (Örneğin html en snipped edilmiştir):

<a href="#" onclick="makewindows(&quot;<P align=center><SPAN style=\&quot;FONT-FAMILY: Arial\&quot;>&quot;); return false;">Click for more</a>

Şimdi, aynı yöntemi kullanarak, yerine html bir görüntü görüntülemek için, bir görüntü bağlantı tıklanabilir yukarıdaki yapmak istiyorum.

Öyle gibi php bir $ imagehtml değişkeni yaptı:

$imagehtml = "<img src='".$imageSrc."' >";

$ IMAGESRC başka bir yöntemin sonucu, ama bir görüntü için geçerli bir url başarısız olmadan her zaman

makeWindows dolar imageHtml geçen (bu standartları şikayet html olmadığı gerçeği, en azından ne çalışıyorum. her tarayıcı güzelle bağımsız bir html dosyası görüntüler içinde html aynı tek satır başarısız neden olarak, irelivant olduğunu.) çalışması gerekir

Bu aşağıdaki html sonuçları:

<a href="#" onclick="makewindows(<img src='removed.jpg' >); return false;">
<img src="removed.jpg" width="250" height="250"></a>

Bu tamamen başarısız. Hiçbir pencere tüm oluşturulur gibi, görüntü yolu ile ilgisi yoktur. Ben yapıyorum bütün geçti değişken, kesinlikle pencere hala ne olursa olsun html içeriği, oluşturulmalıdır değişiyor?

aşağıdaki gibi imagehtml tanımlanması, örneğin, boş: Bu konuda geçmeye çalışırken bile başarısız olur:

$imagehtml = "about:blank";

in sonuçları:

<a href="#" onclick="makewindows(about:blank); return false;">Click for full description </a>

yine hiçbir pencere.

2 Cevap

Böyle bir şey istiyorum:

$str = '<img src="...">';

echo '<a href="#" onclick="makewindows('
    . htmlspecialchars(json_encode($str))
    . '); return false;">Click for full description</a></p>';

Bu, doğru kodlama / kaçışa yapacağız.

Muhtemelen yanlış bir şey yapıyoruz.

Diyelim ki bir HTML niteliğine içinde bir JavaScript işlevi çağrısı için bu HTML geçmek istediğinizi varsayalım:

<img src="removed.jpg" width="250" height="250">

Sonra bu iş yeterli:

$html = '<img src="removed.jpg" width="250" height="250">';
echo '<a href="#" onclick="makewindows(' . htmlspecialchars(var_export($html, true), ENT_QUOTES) . '); return false;">Click for full description</a></p>';

var_export function converts the value into an (PHP) equivalent expression and the htmlspecialchars function Sonunda karakter başvuruları içine HTML meta karakterleri dönüştürür.

Bu en zarif yolu olmayabilir, ama çalışır.