Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [javascript] cytowanie, apostrofy cudzysłowia
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
mihauu
Witam
Znalazlem piekny darmowy skrypcik do robienia popupów. Wszystko ladnie pieknie do czasu aż nie wpisze się " w tekst...

Funkcje odpalam tak:
  1. onclick="popImage('./sciezka/do/obrazka.jpg', 'tutaj tekst ktory wpisze sie pod obrazkiem' );"

- dziala
Musze umożliwić takie coś wpisywanie udzysłowia:
  1. onclick="popImage('./sciezka/do/obrazka.jpg', 'tutaj tekst ktory wpisze sie pod \"obrazkiem\"' );"

- nie dziala.

Kombinowałem już \', \" zmieniałem cudzysłowia na znaki specjalne i &Primo; etc. i jakoś nie umiem znaleźć rozwiązania tego problemu.

Przepuszczenie tego przez
  1. <?php
  2.  
  3. $mini[1] = htmlspecialchars("$mini[1]", ENT_QUOTES );
  4. ?>

Również nie pomaga.

Jeśli ktoś zna rozwiązanie to będę niesamowicie wdzięczny za pomoc.
Spirit86
nie rozumiem, czemu nie wpiszesz po prostu:


  1. onclick="popImage('./sciezka/do/obrazka.jpg', 'tutaj tekst ktory wpisze sie pod "obrazkiem"' );


?
mihauu
Cytat
czemu nie wpiszesz po prostu:

bo nie dziala sad.gif

explorer informuje,że
Cytat
brak zakończenia stałej znakowej
Spirit86
wiem już jaki jest błąd zapewne,

Kod
onclick="popImage('./sciezka/do/obrazka.jpg', 'tutaj tekst ktory wpisze sie pod \'obrazkiem\'' );


dałeś onClick="{tutaj_jeszcze_2_"}"


Proponuję, abyś pokazał większą część kodu.
mihauu
  1. <img src="./obrazki/atlas/min/obrazek.jpg"  onclick="popImage('./obrazki/atlas/max/Mukana_i_Basiliaf6df4046fa8d0499ae1cf6cdd2459ebc.jpg', 'nieszczęsny tekst z "cudzysłowiem" ' );" class="img_ramka" style="cursor:pointer">


a funkcja javascript produkująca pup-upa, wyglada tak

  1. function popImage(imageURL,imageTitle){
  2.   PositionX = 360;
  3.   PositionY = 200;
  4.   defaultWidth  = 300;
  5.   defaultHeight = 225;
  6.   var AutoClose = false;
  7.  
  8.   var imgWin = window.open('','_blank','scrollbars=no,resizable=no,status=no,width='+defaultWidth+',height='+defaultHeight+',left='+PositionX+',top='+PositionY);
  9.   if( !imgWin ) { return true; } //popup blockers should not cause errors
  10.   imgWin.document.write('<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2" /><title>'+imageTitle+'<\/title><script type="text\/javascript">\n'+
  11.      'function resizeWinTo() {\n'+
  12.      'if( !document.images.length ) { document.images[0] = document.layers[0].images[0]; }'+
  13.      'var oH = document.images[0].height, oW = document.images[0].width;\n'+
  14.      'if( !oH || window.doneAlready ) { return; }\n'+ //in case images are disabled
  15.      'window.doneAlready = true;\n'+ //for Safari and Opera
  16.      'var x = window; x.resizeTo( oW + 200, oH + 200 );\n'+
  17.      'var myW = 0, myH = 0, d = x.document.documentElement, b = x.document.body;\n'+
  18.      'if( x.innerWidth ) { myW = x.innerWidth; myH = x.innerHeight; }\n'+
  19.      'else if( d && d.clientWidth ) { myW = d.clientWidth; myH = d.clientHeight; }\n'+
  20.      'else if( b && b.clientWidth ) { myW = b.clientWidth; myH = b.clientHeight; }\n'+
  21.      'if( window.opera && !document.childNodes ) { myW += 16; }\n'+
  22.      'x.resizeTo( oW = oW + ( ( oW + 200 ) - myW ), oH = oH + ( (oH + 250 ) - myH ) );\n'+
  23.      'var scW = screen.availWidth ? screen.availWidth : screen.width;\n'+
  24.      'var scH = screen.availHeight ? screen.availHeight : screen.height;\n'+
  25.      'x.moveTo(Math.round((scW-oW)/2),Math.round((scH-oH)/2));\n'+
  26.      '}\n'+
  27.      '<\/script>'+
  28.      '<\/head><body onload="resizeWinTo();"'+(AutoClose?' onblur="self.close();"':'')+'>'+
  29.      (document.layers?('<layer left="0" top="0">'):('<div style="position:absolute;left:0px;top:0px;">'))+
  30.      '<img src='+imageURL+' alt="Trwa ładowanie grafiki..." title="'+imageTitle+'" onload="resizeWinTo();" onclick="window.close();"><br /><p align=center>'+imageTitle+'</p>'+
  31.      (document.layers?'<\/layer>':'<\/div>')+'<\/body><\/html>');
  32.   imgWin.document.close();
  33.   if( imgWin.focus ) { imgWin.focus(); }
  34.   return false;
  35. }
TomASS
Proszę Cię bardzo: smile.gif
  1.  
  2.  
  3. </head>
  4. function popImage(imageURL,imageTitle){
  5.  PositionX = 360;
  6.  PositionY = 200;
  7.  defaultWidth  = 300;
  8.  defaultHeight = 225;
  9.  var AutoClose = false;
  10.  
  11.  var imgWin = window.open('','_blank','scrollbars=no,resizable=no,status=no,width='+defaultWidth+',height='+defaultHeight+',left='+PositionX+',top='+PositionY);
  12.  if( !imgWin ) { return true; } //popup blockers should not cause errors
  13.  imgWin.document.write('<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2" /><title>'+imageTitle+'<\/title><script type="text\/javascript">\n'+
  14.     'function resizeWinTo() {\n'+
  15.     'if( !document.images.length ) { document.images[0] = document.layers[0].images[0]; }'+
  16.     'var oH = document.images[0].height, oW = document.images[0].width;\n'+
  17.     'if( !oH || window.doneAlready ) { return; }\n'+ //in case images are disabled
  18.     'window.doneAlready = true;\n'+ //for Safari and Opera
  19.     'var x = window; x.resizeTo( oW + 200, oH + 200 );\n'+
  20.     'var myW = 0, myH = 0, d = x.document.documentElement, b = x.document.body;\n'+
  21.     'if( x.innerWidth ) { myW = x.innerWidth; myH = x.innerHeight; }\n'+
  22.     'else if( d && d.clientWidth ) { myW = d.clientWidth; myH = d.clientHeight; }\n'+
  23.     'else if( b && b.clientWidth ) { myW = b.clientWidth; myH = b.clientHeight; }\n'+
  24.     'if( window.opera && !document.childNodes ) { myW += 16; }\n'+
  25.     'x.resizeTo( oW = oW + ( ( oW + 200 ) - myW ), oH = oH + ( (oH + 250 ) - myH ) );\n'+
  26.     'var scW = screen.availWidth ? screen.availWidth : screen.width;\n'+
  27.     'var scH = screen.availHeight ? screen.availHeight : screen.height;\n'+
  28.     'x.moveTo(Math.round((scW-oW)/2),Math.round((scH-oH)/2));\n'+
  29.     '}\n'+
  30.     '<\/script>'+
  31.     '<\/head><body onload="resizeWinTo();"'+(AutoClose?' onblur="self.close();"':'')+'>'+
  32.     (document.layers?('<layer left="0" top="0">'):('<div style="position:absolute;left:0px;top:0px;">'))+
  33.     '<img src='+imageURL+' alt="Trwa ładowanie grafiki..." title="'+imageTitle+'" onload="resizeWinTo();" onclick="window.close();"><br /><p align=center>'+imageTitle+'</p>'+
  34.     (document.layers?'<\/layer>':'<\/div>')+'<\/body><\/html>');
  35.  imgWin.document.close();
  36.  if( imgWin.focus ) { imgWin.focus(); }
  37.  return false;
  38. }
  39. <img src="./obrazki/atlas/min/obrazek.jpg"  onclick='popImage("./obrazki/atlas/max/Mukana_i_Basiliaf6df4046fa8d0499ae1cf6cdd2459ebc.jpg", "nieszczęsny tekst z \"cudzyslowem\"" );'  class="img_ramka" style="cursor:pointer">
  40. </body>
  41. </html>

Działa jak talala tongue.gif
mihauu
już prawie winksmiley.jpg

pomyłka w diagnozie. Z cudzysłowami działa. Wywala to znak nowej linii.

Można go jakoś inaczej niż przez str_replace ("\n", " " , $zmienna) questionmark.gif
Chyba nie umiem się posługiwać manualem sad.gif
TomASS
Cytat
Wywala to znak nowej linii.

Co to znaczy? smile.gif

"Znak nowej linii" w przypadku wywolania:
  1. <img src="./obrazki/atlas/min/obrazek.jpg"  onclick='popImage("./obrazki/atlas/max/Mukana_i_Basiliaf6df4046fa8d0499ae1cf6cdd2459ebc.jpg", "nieszczęsny tekst z \"cudzyslowem\"" );'  class="img_ramka" style="cursor:pointer">

wprowadzany jest przez popupa, tekst poprostu nie mieści się w jednej linijce.
mihauu
te dane są wprowadzane przez formularz w polu:

  1. <textarea name="opis5" rows="5" cols="40"></textarea>


i pomimo takiego czegoś w pliku przetwarzającym :
  1. <?php
  2. $opis5 = strip_tags($_POST['opis5']);
  3. $opis5 = str_replace("\n"," " ,$opis5 );
  4. ?>

poźniej zapisuje to do bazy do pola varchar.

Przy wyświetlaniu
  1. <?php
  2.  
  3. $mini[1] = htmlspecialchars("$mini[1]", ENT_QUOTES );
  4. ?>


daje mi takie źródło:
  1. <img src="./obrazki/atlas/min/36_1_bb7dff8adad38c557f5ef2b0c25e3875.jpg" alt=" " onclick="popImage('./obrazki/atlas/max/36_1_bb7dff8adad38c557f5ef2b0c25e3875.jpg', 'sdfg
  2. sdf
  3. gsdf
  4. g&quot;asdf&quot; ' );"


Zaczynam tracić już siły...


//edyta
Namieszałem w opisie teraz, ale proszę powiedzcie mi tylko jak usunąć znaki nowej linii to z resztą już sobie poradzę.
TomASS
Proszę jeszcze raz: smile.gif
  1. <html>
  2.  
  3. <head>
  4.  
  5. </head>
  6. <script>
  7. function popImage(imageURL,imageTitle){
  8. PositionX = 160;
  9. PositionY = 100;
  10. defaultWidth = 400;
  11. defaultHeight = 425;
  12. var AutoClose = false;
  13.  
  14. var imgWin = window.open('','_blank','scrollbars=no,resizable=no,status=no,width='+defaultWidth+',height='+defaultHeight+',left='+PositionX+',top='+PositionY);
  15. if( !imgWin ) { return true; } //popup blockers should not cause errors
  16. imgWin.document.write('<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2" /><title>'+imageTitle+'<\/title><script type="text\/javascript">\n'+
  17.  'function resizeWinTo() {\n'+
  18.  'if( !document.images.length ) { document.images[0] = document.layers[0].images[0]; }'+
  19.  'var oH = document.images[0].height, oW = document.images[0].width;\n'+
  20.  'if( !oH || window.doneAlready ) { return; }\n'+ //in case images are disabled
  21.  'window.doneAlready = true;\n'+ //for Safari and Opera
  22.  'var x = window; x.resizeTo( oW + 200, oH + 200 );\n'+
  23.  'var myW = 0, myH = 0, d = x.document.documentElement, b = x.document.body;\n'+
  24.  'if( x.innerWidth ) { myW = x.innerWidth; myH = x.innerHeight; }\n'+
  25.  'else if( d && d.clientWidth ) { myW = d.clientWidth; myH = d.clientHeight; }\n'+
  26.  'else if( b && b.clientWidth ) { myW = b.clientWidth; myH = b.clientHeight; }\n'+
  27.  'if( window.opera && !document.childNodes ) { myW += 16; }\n'+
  28.  'x.resizeTo( oW = oW + ( ( oW + 200 ) - myW ), oH = oH + ( (oH + 250 ) - myH ) );\n'+
  29.  'var scW = screen.availWidth ? screen.availWidth : screen.width;\n'+
  30.  'var scH = screen.availHeight ? screen.availHeight : screen.height;\n'+
  31.  'x.moveTo(Math.round((scW-oW)/2),Math.round((scH-oH)/2));\n'+
  32.  '}\n'+
  33.  '<\/script>'+
  34.  '<\/head><body onload="resizeWinTo();"'+(AutoClose?' onblur="self.close();"':'')+'>'+
  35.  (document.layers?('<layer left="0" top="0">'):('<div style="position:absolute;left:0px;top:0px;">'))+
  36.  '<img src='+imageURL+' alt="Trwa ładowanie grafiki..." title="'+imageTitle+'" onload="resizeWinTo();" onclick="window.close();"><br /><p align=center>'+imageTitle+'</p>'+
  37.  (document.layers?'<\/layer>':'<\/div>')+'<\/body><\/html>');
  38. imgWin.document.close();
  39. if( imgWin.focus ) { imgWin.focus(); }
  40. return false;
  41. }
  42. </script>
  43. <body>
  44.  
  45. <?
  46. $tekst = "sdfgsf
  47. gsdfg&quot;asdf
  48. &quot;";
  49. $tekst = str_replace("\r\n", "", $tekst);
  50. ?>
  51. <img src="./obrazki/atlas/min/36_1_bb7dff8adad38c557f5ef2b0c25e3875.jpg" alt=" " onclick="popImage('./obrazki/atlas/max/36_1_bb7dff8adad38c557f5ef2b0c25e3875.jpg', '<?echo $tekst;?>');">
  52. </body>
  53. </html>
mihauu
alleluja!

Dzięki wielki.

Jak zawsze o jedną linijkę chodziło biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.