Aiven Skrevet 17. juli 2009 Del Skrevet 17. juli 2009 (endret) Hei! Jeg er nybegynner i javascript. For tiden driver jeg og lager et greasemonkey script for å legge til nyttige funksjoner i nettleserspillet The West. Jeg har fått til å legge til knapper i deres meny med linker til eksterne nettsider. Det jeg ikke får til er å lage knapper som starter javascript. Det er dette jeg håper å få hjelp med. 1. Lage en knapp (jpg bilde) som utfører følgende javascript når den blir trykket på: java script:(function(){%20var%20head%20= %20document.getElementsByTagName('head').item(0);%20var%20old%20= %20document.getElementById('TWIjs');%20if(old)%20head.removeChild (old); %20var%20js%20=%20document.createElement('script');%20js.setAttribute ('id',%20'TWIjs');%20js.setAttribute('language',%20'javascript'); %20js.setAttribute('type',%20'text/javascript');%20js.setAttribute ('src',%20'http://www.TheWestInsider.com/scripts/1.js.php'); %20head.appendChild(js);%20}%20)() 2. Lage en knapp (jpg bilde) som utfører disse tre kommandoene, når den blir trykket på (1 javascript, 2 html linker). java script:var%20wsp_auth%20= %20'&ui=148427&up=dee49110021552e7b73c9a3a3a6f5fc4fbfdd4b0';var %20wsp_url%20=%20'www.weststats.com';var%20remoteScript=new%20Element ('script',%20{"type":%20"text/javascript",%20"src":%20"http:// www.weststats.com/js/import_all.js?1240671482"});document.body.appendChild(remoteScript);void(0); + <a style="background:url(http://g.imagehost.org/0301/ weststats.jpg) no-repeat" href="http://www.weststats.com/? change_world='+actual_world+'" target="_blank"></a> + <a href=""></a> Om noen kan hjelpe med dette, er jeg evig takknemlig! Du kan se scriptet i sin helhet her Endret 17. juli 2009 av AvieN Lenke til kommentar
siDDis Skrevet 17. juli 2009 Del Skrevet 17. juli 2009 onclick på eit element vil kjøre javascript <img src="truls.jpg" onclick="mainFunction()" alt="" /> for å skifte url så er det bare å skrive <img src="vglogo" onclick="document.location = this.alt" alt="www.vg.no" /> Lenke til kommentar
Aiven Skrevet 17. juli 2009 Forfatter Del Skrevet 17. juli 2009 (endret) onclick på eit element vil kjøre javascript <img src="truls.jpg" onclick="mainFunction()" alt="" /> for å skifte url så er det bare å skrive <img src="vglogo" onclick="document.location = this.alt" alt="www.vg.no" /> Dette er nok veien å gå, men det fungerer ikke å lime inn scriptet i stedet for "mainFunction()". Hva gjør jeg galt? Jeg forsøkte følgende: var weststats_script = document.createElement("li"); weststats_script.id="weststats_script"; weststats_script.innerHTML = '<img src="http://dump.ninjapirat.org/files/refresh_thewest2.jpg" onclick="java script:(function(){ var head = document.getElementsByTagName('head').item(0); var old = document.getElementById('TWIjs'); if(old) head.removeChild(old); var js = document.createElement('script'); js.setAttribute('id', 'TWIjs'); js.setAttribute('language', 'javascript'); js.setAttribute('type', 'text/javascript'); js.setAttribute('src', 'http://www.TheWestInsider.com/scripts/1.js.php'); head.appendChild(js); } )() alt="" />'; som så skulle hentes inn igjen med: if (menu_work) { menu_work.parentNode.insertBefore(weststats_script, menu_work.nextSibling); }; Endret 17. juli 2009 av AvieN Lenke til kommentar
Jesper Karsrud Skrevet 18. juli 2009 Del Skrevet 18. juli 2009 (endret) Grunnen til at det ikke fungerte vil jeg tippe er at du bruke double quotes i både onclick-attributtet og i scriptet du prøvde å lime inn. Dette avslutter det du allerede har begynt å skrive inn, altså vil du måtte bruke single quotes eller escape hver eneste double quote. Made sense? Edit: Du har også prestert å skrive "java script" i onclick-attributtet ditt, det skal være javascript i ett ord, slik det alltid har vært. Endret 18. juli 2009 av Jesper Karsrud Lenke til kommentar
Aiven Skrevet 19. juli 2009 Forfatter Del Skrevet 19. juli 2009 (endret) Grunnen til at det ikke fungerte vil jeg tippe er at du bruke double quotes i både onclick-attributtet og i scriptet du prøvde å lime inn. Dette avslutter det du allerede har begynt å skrive inn, altså vil du måtte bruke single quotes eller escape hver eneste double quote. Made sense? Edit: Du har også prestert å skrive "java script" i onclick-attributtet ditt, det skal være javascript i ett ord, slik det alltid har vært. Takk for tipsene. Du hadde nok helt rett i dette. Nå kommer i alle fall knappen frem, men scriptet kjører seg desverre ikke. Hva mener du med escape? Har man 3 ulike hermetegn tilgjengelig? Dette ville i så fall antakelig gjøre det lettere. Koden min ser nå slik ut: var weststats_script = document.createElement("li"); weststats_script.id="weststats_script"; weststats_script.innerHTML = "<img src='http://dump.ninjapirat.org/files/refresh_thewest2.jpg' onclick=java script:(function(){ var head = document.getElementsByTagName('head').item(0); var old = document.getElementById('TWIjs'); if(old) head.removeChild(old); var js = document.createElement('script'); js.setAttribute('id', 'TWIjs'); js.setAttribute('language', 'javascript'); js.setAttribute('type', 'text/javascript'); js.setAttribute('src', 'http://www.TheWestInsider.com/scripts/1.js.php'); head.appendChild(js); } )() />"; P.S. Jeg har ikke skrevet "java script:", det mellomrommet er det IP Board forumet som lager. Endret 19. juli 2009 av AvieN Lenke til kommentar
Jesper Karsrud Skrevet 20. juli 2009 Del Skrevet 20. juli 2009 Det forklarer saken, da beklager jeg min noe frekke tone Man har bare to forskjellige hermetegn; single quote: ' og double quote: ". Escaping betyr at man gir en ny mening til tegn som følger en escape-character. Eksempel i JavaScript iom at det er det forumet vi er i nå: document.write("Dette er en streng, med en "streng inni" seg."); Koden over skulle man kanskje tro ga følgende output på utskrift: Dette er en streng, med en "streng inni" seg. Koden vil derimot gi en syntax error, fordi JavaScript ikke vet hva "streng inni" er. Istedet kan man escape den innerste strengen, slik at man får ønsket output: document.write("Dette er en streng, med en \"streng inni\" seg."); Man vil nå få output slik jeg skrev over. Koden din burde funke, men jeg ser du mangler quotes rundt onclick-attributtet ditt. Det burde ikke ha noe å si, men det spørs på doctype på sidene dine. Det jeg tror du kanskje skal prøve på aller først, er å sjekke ut om det kjøres noe kode i det hele tatt; lag et nytt Greasemonkey-script som kun legger til knappen og gjør ett eller annet annet når du trykker på den. Noe så enkelt som å endre bakgrunnsfarge på sidene eller noe slikt noe. Det er en tydelig forandring, og da skjønner man at det skjer noe også Lenke til kommentar
Aiven Skrevet 20. juli 2009 Forfatter Del Skrevet 20. juli 2009 (endret) Fy fader Jesper, du er dagens helt for min del altså. Etter endel knoting, så fungerte scriptet som smurt Kjempetakk fra en newbiekoder, veldig gøy var weststats_script = document.createElement("li"); weststats_script.id="weststats_script"; weststats_script.innerHTML = "<a style='background:url(http://dump.ninjapirat.org/files/refresh_thewest2.jpg) no-repeat' href=\"java script:var%20wsp_auth%20=%20'&ui=148427&up=dee49110021552e7b73c9a3a3a6f5fc4fbfdd4b0';var%20wsp_url%20=%20'www.weststats.com';var%20remoteScript=new%20Element('script',%20{'type':%20'text/javascript',%20'src':%20'http://www.weststats.com/js/import_all.js?1240671482'});document.body.appendChild(remoteScript);void(0);\"</a>"; Endret 20. juli 2009 av AvieN Lenke til kommentar
Jesper Karsrud Skrevet 20. juli 2009 Del Skrevet 20. juli 2009 Alltid hyggelig å kunne hjelpe en nybegynner ett steg videre! Flott at du fikk det til Lenke til kommentar
Aiven Skrevet 17. august 2009 Forfatter Del Skrevet 17. august 2009 Nå har jeg over 500 nedlastinger på mine to skript, skal si de ble populære Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå