10. juli 2005 - 13:50Der er
31 kommentarer og 1 løsning
RegExp til at lægge en onClick til en image tag
Hejsa
Jeg er et kvaj til at bruge RegExp, og nu har jeg fedtet rundt i en times tid uden at nå nogle vegne.
Jeg har lavet et lille CMS system, hvor et billede kan blive indsat med en med en lille krølle på halen inde i src tagget, nemlig zoom=yes. Det skal jeg så finde, og erstatte med en OnClick="[forstør mit billede kode]".
Dette skal jeg gøre for alle img tags, der indeholder zoom=yes i deres src.
Selve strengen der skal ledes igennem kommer fra et recordset, der hedder rsGruppe("tekst").
Er der nogen der kan være så søde at hjælpe mig, inden jeg bliver vanvittig :-)
Mød en af Nordens fremmeste eksperter i adfærdsdesign – Morten Münster, der bl.a. har skrevet ” Jytte fra marketing er desværre gået for i dag” – på Computerworld Cloud & AI Festival.
Jeg skal faktisk bruge det billede id i min forstør-billede kode. Hvordan får jeg det ud? Du får point nu, men hvis du har en god idé ville det være sweet - koden ser sådan her ud nu:
Undgå mellemrum, i parameterne (sidste 'noget her'), da det kan (af en eller anden mærkelig grund) give problemer i visse browsere (kan ikke huske hvilke)..
Der skal ikke bruges "java script:" i onclick.. kun i href="java script:..."
Hvis du bruger f.eks. bruger href="#" og onclick="...", skal du huske "return false" i onclick:
Din skitserede løsning vil dog ikke virke, da rsGruppe("tekst") indeholder en tekstreng i HTML med mulighed for flere billeder. rs("id") og billedet hænger altså ikke sammen.
Glæder mig til at høre fra dig i aften, hvis det er... Er der evt. andre der har bud :-)
Der må være et felt (typisk type="textbox"..>), hvori id'en står.. den har id="myInsertImage" i sig..
Du mangler et "=": if(zoom = "yes") Det skal være: if(zoom == "yes")
PS: "document.all" virker kun i Internet Explorer.. dvs, det er en editor, designet til at virke i IE.. men det kan vel være lige meget, med mindre at dine brugere skal kunne bruge editoren..
Jeg har som sådan ikke problemer med at generere strengen, og jeg kan sagtens se billedet.
zoom=yes er ikke en tildeling i javascript, men blot lavet for at jeg kan finde ud af hvilke billeder brugeren ønsker der skal kunne zoomes på bagefter. Altså, led efter "zoom=yes", så ved jeg hvilke billeder jeg skal ind og pille ved.
Den løsning du startede med at komme med virker - onClick fungerer upåklageligt, problemet er blot at billedets id, skal medsendes til den ASP site der åbner i et nyt vindue, for at den kan hente billedet, i fuld opløsning fra DB'en.
HTML-edit host er en integreret del af IE 5.0+, så det er derfor jeg er ligeglad med diverse andre browsere. Man kan kun ændre i i IE ;-)
Jeg tror at man kan nøjes med disse linier, i din insertImage funktion:
function insertImage() { if (document.getElementById('myInsertImage').value != 0){ var scaleTo = "full"; // ændres kun, hvis billedet skal skaleres var zoom = ""; // ændres kun, hvis der skal zoomes
var msg = "Skal billedet skaleres?"; if (confirm(msg)) scaleTo = prompt("Indtast den nye bredde til billedet","200");
var msg = "Skal billedet kunne forstørres v. museklik?" if (confirm(msg)) zoom = "&zoom=yes";
Den gør det, at den henter det der står i src="...". Så finder den frem til "?id=", og tager den det der står efter det.. indtil den støder på "&"-tegnet.. = id'en :-)
function insertImage() { if (document.getElementById('myInsertImage').value != 0){ var scaleTo = "full"; // ændres kun, hvis billedet skal skaleres var zoom = ""; // ændres kun, hvis der skal zoomes var msg = "";
msg = "Skal billedet skaleres?"; if (confirm(msg)) scaleTo = prompt("Indtast den nye bredde til billedet","200");
msg = "Skal billedet kunne forstørres v. museklik?" if (confirm(msg)) zoom = "&zoom=yes";
Ang points-spm: Husk altid refence/link til det originale spm.. ellers er det ulovlig pointsoverførsel.. men man kan godt finde frem til spm'et, via konto-menuen..
OK - det skal jeg huske. Har aldrig prøvet det før, så det er en beginners mistake. Tak for tippet!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.