login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Javascript om src van image in textarea te plaatsen werkt niet (Opgelost)

Offline squashmats - 21/12/2011 18:20 (laatste wijziging 21/12/2011 18:21)
Avatar van squashmatsLid Plaatscode: 141498


De vbscript code genereert alle bestanden in een map als afbeelding, als er op geklikt wordt, moet de src van de afbeelding in het tekstvak geplaatst worden. Echter als ik op een afbeelding klik, gebeurt er niets. Het vbscript wordt echter wel goed gegenereerd want de paginacode lijkt te kloppen.

Iemand een idee wat ik fout doe?

  1. <script language="javascript" type="text/javascript">
  2. function addtext(id)
  3. {
  4. var imageLink = "{" + document.getElementById(id).src + "}" ;
  5. document.getElementById("textfield").value += imageLink ;
  6. }
  7. </script>
  8.  
  9.  
  10.  
  11. <div>
  12. <textarea id="textfield"></textarea>
  13. <div>
  14.  
  15. <%
  16. Dim myFSO, myFolderO
  17. Set myFSO = Server.CreateObject("Scripting.FileSystemObject")
  18. Set myFolderO = myFSO.GetFolder(Server.MapPath("Code\_Images\creditcards"))
  19. For Each fileItem In myFolderO.Files
  20. Response.Write("<input type=""image"" id=""" & fileItem.Name & """ value=""add a text"" src=""Code/_Images/creditcards/" & fileItem.Name & """ onClick=""addtext(" & fileItem.Name & ");"">")
  21. Next
  22. Set myFolderO = nothing
  23. Set myFSO = nothing
  24. %>
  25.  
  26. </div>
  27. </div>

5 antwoorden

Gesponsorde links
Offline WouterJ - 21/12/2011 19:21 (laatste wijziging 21/12/2011 19:24)
Avatar van WouterJ HTML gevorderde Ik heb geen idee over VBcode, dus zou je misschien ook het resultaat (of een versimpeling (bijv. 1 element)) willen laten zien?

Verder gebruik je het language attribuut, dit attribuut heeft nooit bestaan en is slechts een verzinsel van IE. Deze kun je dus gewoon weghalen, het type attribute kan je nog wel gebruiken al staat deze standaard op text/javascript dus die kun je ook weg laten.

Gebruik eens console.log om te kijken of imageLink bevat wat je dacht dat het moet bevatten? Deze console.log kun je lezen in de console. Hoe je deze console opent in je browser kun je hier lezen: http://www.site...1#id252857

En als laatst nog even een snelheids tip. Je haalt nu per click event het element #textarea op. Dit kost de hele tijd weer tijd om de hele DOM te doorzoeken en dan weer het #textarea element te vinden en daar de value van te doen. Het is beter als je buiten het click event het #textarea element opzoekt en hem daarna telkens weer te gebruiken:
  1. var elem = document.getElementById('textarea');
  2.  
  3. function onClickEvent( txt ) {
  4. elem.value = txt;
  5. }
Offline squashmats - 21/12/2011 20:52
Avatar van squashmats Lid Als ik die console opentrek en op een item klik, komt er
"discover_15 is not defined" waarbij discover_15 de fileItem.Name is zonder extensie.

Bedankt voor die snelheidstip btw, was idd niet zo goed bekeken van me 
Offline vinTage - 21/12/2011 20:58 (laatste wijziging 21/12/2011 20:59)
Avatar van vinTage Nieuw lid Gezien je foutmelding, lijkt het mij dat discover_15 als variable wordt gezien en niet als string, dus ergens gaat het niet goed met je quotes.

Ik ben ook absoluut niet bekend met vb, maar je regel 20 ziet er imho wel heel gaar uit.. ? 
Offline WouterJ - 21/12/2011 22:16
Avatar van WouterJ HTML gevorderde Voor wat ik van regel 20 kan maken komt er zo'n soort HTML uit:
  1. <input type=""image"" id=""<filename>"" value=""add a text"" src=""Code/_Images/creditcards/<filename>"" onClick=""addtext(<filename>);"">

Het lijkt erop alsof er iets goed mis gaat met de quotes. Je gebruik namelijk maar 1 keer " aan het begin en 1 keer " aan het eind, niet 2 keer.

Ook moet een string, zoals vinTage goed opmerkte, tussen quotes in JS. Het zou er dus zoiets uit moeten zien:
  1. Response.Write("<input type="image" id="" & fileItem.Name & "" value="add a text" src="Code/_Images/creditcards/" & fileItem.Name & "" onClick="addtext('" & fileItem.Name & "');">")

En misschien zelfs wel zo, ik weet niet hoe VB quotes handelt:
  1. Response.Write('<input type="image" id="' & fileItem.Name & '" value="add a text" src="Code/_Images/creditcards/' & fileItem.Name & '" onClick="addtext(\'" & fileItem.Name & '\');">')

Bedankt door: squashmats
Offline squashmats - 21/12/2011 23:10
Avatar van squashmats Lid Het VB script klopt wel degelijk, die dubbele quotes worden gebruikt om quotes in html te schrijven.

Zo wordt id=""" & fileItem.Name & """ value=""add a text"" -> id="filename" value="add a text"

Het werkt nu, door de enkele quotes bij de onclick in te voegen. Ik kreeg echter wel foutmeldingen toen ik het textfield wou laten laden buiten de functie. Dit staat er nu terug binnen.

Thx guys!
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.202s