Autor Zpráva
ahoj
Profil *
Používám clearbox, to je jeden z mnoha klonů lightboxu. Umí místo obrázků zobrazovat i html, běžně to používám, funguje to. Teď bych do něj ale potřeboval dát button a nějakým javascriptem a narazil jsem.

$editbox = "<button onclick='alert(\"e1\")'>Objednat</button>";
echo '<a href="htmlcontent" rel="clearbox[width=350,,height=200,,tnhrf=nopreview,,html='.$editbox.']">';

Toto nefunguje, protože \" se propojí s nějakým protikusem uvnitř clearboxu a ten zahlásí chybu.

Toto funguje:
$editbox = "<button onclick='alert(e1)'>Objednat</button>";
echo '<a href="htmlcontent" rel="clearbox[width=350,,height=200,,tnhrf=nopreview,,html='.$editbox.']">';

Ale zase nezafunguje ten alert, z pochopitelného důvodu, že se snažím do JS předat string bez uvozovek.
Vím, že "třetí úroveň uvozovek" neexistuje. Ale byl bych vděčen za radu, jak toto vyřešit.
Fisir
Profil
Reaguji na ahoje [#1]:
$alert = "\"e1\"";
$editbox = "<button onclick='alert(".$alert.")'>Objednat</button>";
echo '<a href="htmlcontent" rel="clearbox[width=350,,height=200,,tnhrf=nopreview,,html='.$editbox.']">';
ahoj
Profil *
Fisir:
To se chová stejně jako ten můj první případ.
Fisir
Profil
Reaguji na ahoje [#3]:
A toto?
<?php
$alert = "\'e1\'";
$editbox = "<button onclick='alert(".$alert.")'>Objednat</button>";
echo '<a href="htmlcontent" rel="clearbox[width=350,,height=200,,tnhrf=nopreview,,html='.$editbox.']">';
?>
(Nemám Clearbox, ale výstup ze serveru vypadá dobře.)
ahoj
Profil *
Ještě mě napadlo, že bych se při troše snahy mohl obejít bez toho předání řetězce do JS. Pokud ano, nehrozí nějaká nespolehlivost v prohlížečích při použití tohoto?

<button onclick='jsscript(1)'>Objednat</button>

Nicméně.. odpověď na původní otázku mě zajímá. Ještě nemám jasno, jestli si vystačím s číslem.
DJ Miky
Profil
V atributech se dají používat entity, takže by mělo fungovat alert(&quot;e1&quot;) nebo alert(&apos;e1&apos;).
ahoj
Profil *
Fisir:
výstup ze serveru vypadá dobře

Výstup vypadá takto a nefunguje:
<button onclick='alert(\'e1\')'>



DJ Miky:

&quot;e1&quot;
To je přesně to, co funguje! Díky :-)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: