login  Naam:   Wachtwoord: 
Registreer je!
 Forum

selection / newline match

Offline vinTage - 08/06/2010 00:20 (laatste wijziging 08/06/2010 00:21)
Avatar van vinTageNieuw lid Bezig met een "quote" function..

Onderstaande trekt al wel een beetje op het eindresultaat (denk ik) maat matched geen newlines

Hoe zorg ik ervoor dat die funtie ook newlines vreet?

  1. <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
  2. <script type="text/javascript">
  3. function quoten(naam, id)
  4. {
  5. //text selectie
  6. var quote
  7. if(window.getSelection)
  8. {
  9. quote = window.getSelection().toString();
  10. }
  11. else if(document.getSelection)
  12. {
  13. quote = document.getSelection();
  14. }
  15. else if(document.selection)
  16. {
  17. quote = document.selection.createRange().text;
  18. }
  19.  
  20. //kijken of er geen text uit andere elementen is geselecteerd
  21. var tequoten = $("#"+id).html();
  22. var pat = new RegExp(quote);
  23.  
  24. if( tequoten.match(pat))
  25. {
  26. //bestaande inhoud van textarea
  27. var inhoud = $("#reactieveld").val();
  28. //oude inhoud plus de quote (newline aanmaken als er al een value was, anders niet)
  29. var nl = inhoud != "" ? "\r\n" : '';
  30. $("#reactieveld").val(inhoud + nl+"[quote="+naam+"]"+quote+"[/quote]");
  31. }
  32. else
  33. {
  34. alert('Er is ook text uit een andere reactie geselecteerd, selecteer alleen regels uit de reactie die je wilt quoten')
  35. }
  36. }
  37.  
  38. </script>




  1. <div id="id123">
  2. <b>jan</b> schreef:<br />
  3. lala en po zijn ghey
  4. koen ook ^^
  5. </div>
  6. <a href="#" onclick="quoten('jan', 'id123'); return false;">quote</a>
  7.  
  8.  
  9. <p>&nbsp;</p>
  10.  
  11. <div id="id354">
  12. <b>guus</b> schreef:<br />
  13. krijg nou de vinketering!!
  14. </div>
  15. <a href="javascript:void;" onclick="quoten('guus' , 'id354'); return false;">quote</a>
  16.  
  17.  
  18. <p>&nbsp;</p>
  19.  
  20. <textarea name="reactieveld" id="reactieveld" cols="50" rows="8"></textarea>


regel 3 en 4 zouden dus WEL in een quote horen, maar ik krijg daar nu dus een "teveel" alertje op...

5 antwoorden

Gesponsorde links
Offline Stijn - 08/06/2010 01:24
Avatar van Stijn PHP expert En als je nu es volgende probeert...

  1. new RegExp(quote.replace(/[\n\r\t]/g,));
Dus tijdelijk de nieuwe lijnen wegwerken.
Offline Jelmerholland - 08/06/2010 10:16
Avatar van Jelmerholland PHP beginner //offtopic

lol:
<b>jan</b> schreef:<br />
lala en po zijn ghey
koen ook 

<b>guus</b> schreef:<br />
krijg nou de vinketering!!


Lekker voorbeeld Ralph 

//Ontopic
<b> is toch verleden tijd? moet nou toch <strong> zijn? (Tenminste, ik neem aan dat jij xhtml strict als doctype hebt? )

Offline Stijn - 08/06/2010 14:06
Avatar van Stijn PHP expert @Jelmerholland: lees regel 178 eens van de DTD van XHTML1.1-strict.

Citaat:
<!ENTITY % fontstyle "tt | i | b | big | small ">
<b> is helemaal niet verleden tijd.
Offline Jelmerholland - 08/06/2010 15:16
Avatar van Jelmerholland PHP beginner Oh, relaxed.. Ik dacht altijd dat <strong> moest ipv <b> 'Excusez moi'
Offline vinTage - 08/06/2010 16:27 (laatste wijziging 09/06/2010 20:17)
Avatar van vinTage Nieuw lid De spaties er ook uit gefilterd en dan begint het te lijken:

  1. var tequoten = $("#"+id).text().replace(/[\n\r\t\s]/g, "");
  2. pat = quote.replace(/[\n\r\t\s]/g, "");
  3. if( tequoten.match(pat))
  4. {
  5. //goed
  6. }
  7. else
  8. {
  9. alert('fout');
  10. }

De else word door IE niet echt aangeroepen, slechts gedeeltelijk.
IE geeft nl geen alert, maar geeft alleen dit terug:
  1. [quote=naam][/quote]

Dus nog even doorpuzzelen 


edit:
Ben er achter waarom IE het niet juist doet, IE verliest de selectie na klikken op een link (de quote link dus)
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.21s