{"id":858,"date":"2010-08-08T09:31:00","date_gmt":"2010-08-08T08:31:00","guid":{"rendered":"http:\/\/www.nielsgamborg.dk\/wordpress\/?p=858"},"modified":"2010-08-08T09:31:00","modified_gmt":"2010-08-08T08:31:00","slug":"navnegenerator","status":"publish","type":"post","link":"https:\/\/nielsgamborg.dk\/wordpress\/programmering\/navnegenerator.htm","title":{"rendered":"Navnegenerator"},"content":{"rendered":"<p>Jeg har f\u00e5et et par henvendelser om,\u00a0 hvordan man laver en<strong> navnegenerator<\/strong>. Derfor denne guide til, hvordan du kommer i gang. Tutorialen er henvendt til begyndere.<\/p>\n<p>En navnegenerator er god at starte med, hvis man vil lege med programmering. Man kommer hurtigt i gang med at kode, f\u00e5r et brugbart og sjovt resultat, samtidig med at man arbejde med nogle basale ting indenfor programmering. Navnegeneratoren er meget simpel, s\u00e5 den er let at eksperimentere og arbejde videre med.<\/p>\n<p>Navnegeneratoren er skrevet i JavaScript, og kan derfor afvikles i en browser. For et live eksempel se f.eks. min <a title=\"Business name generator\" href=\"http:\/\/online-generator.com\/name-generator\/business-name-generator.php\">business name generator<\/a>.<!--more--><\/p>\n<h3>Navnegenerator script<\/h3>\n<p>Her er f\u00f8rst navnegenerator scriptet i sin helhed:<\/p>\n<blockquote><p>function generator(){<br \/>\n\/\/ Tilf\u00f8j dine egne ord. V\u00e6r omhyggelig med at overholde syntaksen.<br \/>\nvar adjectives = [&#8220;Cool&#8221;,&#8221;Masked&#8221;,&#8221;Bloody&#8221;,&#8221;Lame&#8221;]<br \/>\nvar animals = [&#8220;Hamster&#8221;,&#8221;Moose&#8221;,&#8221;Lama&#8221;,&#8221;Duck&#8221;]<\/p>\n<p>\/\/ Tilf\u00e6ldige tal genereres<br \/>\nvar randomNumber1 = parseInt(Math.random() * adjectives.length);<br \/>\nvar randomNumber2 = parseInt(Math.random() * animals.length);<br \/>\nvar name = adjectives[randomNumber1] + &#8221; &#8221; + animals[randomNumber2];<\/p>\n<p>alert(name); \/\/Slet eller udkomment\u00e9r denne linje, n\u00e5r nedenst\u00e5ende virker.<\/p>\n<p>\/\/Hvis der allerede er et navn bliver det fjernet<br \/>\nif(document.getElementById(&#8220;result&#8221;)){<br \/>\ndocument.getElementById(&#8220;placeholder&#8221;).removeChild(document.getElementById(&#8220;result&#8221;));<br \/>\n}<br \/>\n\/\/ Et div element bliver lavet for at kunne vise det genererede navn.<br \/>\n\/\/Navnet tilf\u00f8jes en tekst-node. Tekstnoden tilf\u00f8jes til pladsholderen.<br \/>\nvar element = document.createElement(&#8220;div&#8221;);<br \/>\nelement.setAttribute(&#8220;id&#8221;, &#8220;result&#8221;);<br \/>\nelement.appendChild(document.createTextNode(name));<br \/>\ndocument.getElementById(&#8220;placeholder&#8221;).appendChild(element);<br \/>\n}<\/p><\/blockquote>\n<p>Men lad os pille koden fra hinanden og se p\u00e5 de enkelte dele hver for sig<\/p>\n<h3>Navne og ordlister<\/h3>\n<p>Det vigtigste element i en navnegenerator er selvf\u00f8lgelig ordlisterne. Det er ud fra disse lister af ord, at navnene genereres. Jo flere ord eller navne du tilf\u00f8jer til ordlisterne, des st\u00f8rre variation i det endelige navn. Ordlisterne gemmes i Arrays. Arrays er kort fortalt variabler, der kan indeholde mange elementer. I vores tilf\u00e6lde er disse elementer ord.<\/p>\n<blockquote><p>var adjectives = [&#8220;cool&#8221;,&#8221;masked&#8221;,&#8221;bloody&#8221;,&#8221;lame&#8221;];<br \/>\nvar animals = [&#8220;hamster&#8221;,&#8221;moose&#8221;,&#8221;lama&#8221;,&#8221;duck&#8221;];<\/p><\/blockquote>\n<p>For at\u00a0 hente data ud array&#8217;et bruger vi\u00a0 array-navnet med en t\u00e6ller i en firkant-parentes som parameter. I programmering t\u00e6ller man n\u00e6sten altid fra nul.<\/p>\n<p>S\u00e5 adjectives[0] returner cool og animals[1] giver moose.<\/p>\n<h3>Tilf\u00e6ldige navne<\/h3>\n<p>For at v\u00e6lge <strong>tilf\u00e6ldige navne<\/strong> og ord fra ordlisterne bruger vi JavaScripts indbyggede random funktion. Math.random giver os\u00a0 tilf\u00e6ldige tal mellem 0 og 0.9999999999999.<\/p>\n<p>I vores tilf\u00e6lde skal vi bruge et tilf\u00e6ldigt tal mellem 0 og 3, da vi har 4 elementer i hvert array. Derfor ganger vi random funktionens tal med 4. Resultatet er et tal mellem o og 3.9999999999996. Men i stedet for selv at skulle t\u00e6lle antallet af elementer i array&#8217;et,\u00a0 f\u00e5r vi JavaScript til at g\u00f8re det med lenght-funktionen.<\/p>\n<p>Endelig bruger vi JavaScript funktionen parseInt() til at runde vores tal ned til det heltal (integer), vi skal bruge til at hente navnene ud af vores 2 arrays.<\/p>\n<p>Det lyder m\u00e5ske en smule kompliceret, men kodem\u00e6ssigt, er det ret simpelt.<\/p>\n<blockquote><p>randomNumber1 = parseInt(Math.random() * adjectives.length);<br \/>\nrandomNumber2 = parseInt(Math.random() * animals.length);<\/p><\/blockquote>\n<h3>Visning af navnet<\/h3>\n<p>Den simpleste metode til at vise navne generatorens resultat er med alert funktionen. Jeg bruger dog udelukkende alert() til at tjekke det genererede navn, fordi en alert box er meget irriterende at bruge i l\u00e6ngden.<\/p>\n<p>I stedet vil vi bruge 7 ekstra linjer p\u00e5 at integrere, dit tilf\u00e6ldige navn i websiden p\u00e5 en mere naturlig m\u00e5de.<\/p>\n<p>Inden vi g\u00e5r i gang, skal du lave et tomt div-tag i din HTML side, der hvor du gerne vil have dit tilf\u00e6ldige navn vist.\u00a0 Dette div tag fungerer som en pladsholder for det genererede navn:<\/p>\n<blockquote><p>&lt;div id=&#8221;placeholder&#8221;&gt;&lt;\/div&gt;<\/p><\/blockquote>\n<p>Og her er de 7 linjer ekstra kode, der skriver resultatet p\u00e5 websiden:<\/p>\n<blockquote><p>if(document.getElementById(&#8220;result&#8221;)){<br \/>\ndocument.getElementById(&#8220;placeholder&#8221;).removeChild(document.getElementById(&#8220;result&#8221;));<br \/>\n}<\/p>\n<p>element = document.createElement(&#8220;div&#8221;);<br \/>\nelement.setAttribute(&#8220;id&#8221;, &#8220;result&#8221;);<br \/>\nelement.appendChild(document.createTextNode(name));<br \/>\ndocument.getElementById(&#8220;placeholder&#8221;).appendChild(element);<\/p><\/blockquote>\n<p>I denne kodeblok sker f\u00f8lgende:<\/p>\n<ol>\n<li>Der tjekkes om der allerede findes et resultat (navn). Hvis ja, bliver det fjernet fra placeholderen<\/li>\n<li>S\u00e5 bliver der skrevet et nyt div element med id&#8217;en result, til at vise det nye resultat<\/li>\n<li>Navnet bliver tilf\u00f8jet div tagget som en text node.<\/li>\n<li>Tilsidst bliver elementet (div-tag med indeholdende text node) h\u00e6ftet p\u00e5 placeholderen i HTML&#8217;en.<\/li>\n<\/ol>\n<p>N\u00e5r denne del fungerer, kan du fjerne alert funktionen fra scriptet, da navnet nu bliver skrevet direkte i HTML&#8217;en.<\/p>\n<h3>S\u00e6t navnegeneratoren sammen<\/h3>\n<p>Scriptet kan du enten inkludere i toppen af dit HTML dokument eller placere i et eksternt script. S\u00e5 er generator funktionen klar til at blive kaldt fra din HTML side.<\/p>\n<p>Jeg kalder altid scriptet 2 steder. F\u00f8rste gang med en onload event i body tagget. S\u00e5 bliver navne generator koden afviklet, n\u00e5r siden loader f\u00f8rste gang.<\/p>\n<blockquote><p>&lt;body onload=&#8221;generator()&#8221;&gt;<\/p><\/blockquote>\n<p>Jeg kalder selvf\u00f8lgelig ogs\u00e5 generator-funktionen fra en knap, s\u00e5 man kan lave nye navne med et klik.<\/p>\n<blockquote><p>&lt;input type=&#8221;button&#8221; value=&#8221;Gener\u00e9r navn&#8221; onclick=&#8221;generator()&#8221; \/&gt;<\/p><\/blockquote>\n<h3>Lav din egen navne generator<\/h3>\n<p>Med scriptet er det let at lave din egen personlige\u00a0 navne generator. Valget af ord i ordlisterne afg\u00f8r om din navne generator laver babynavne, piratnavne, kodenavne eller noget helt fjerde.<\/p>\n<p>Generatoren kan selvf\u00f8lgelig ogs\u00e5 bruges til andre ting. Hvad med at lave en slogan-generator, avisoverskrifter\u00a0 eller besynderlige lovforslag fra Dansk Folkeparti? Kun din fantasi s\u00e6tter gr\u00e6nserne.<\/p>\n<p>Smid endelig en kommentar og et link, hvis du f\u00e5r bakset en sjov eller interessant navne generator sammen. \ud83d\ude42<\/p>\n<h3>Navnegenerator ressourcer<\/h3>\n<p>Se alle mine egne <a title=\"Navnegeneratorer\" href=\"http:\/\/online-generator.com\/\">navnegeneratorer<\/a>. Pt har jeg 18 forskellige navnegeneratorer til inspiration.<\/p>\n<p>Du kan finde et fikst og f\u00e6rdigt\u00a0 <a title=\"Navnegenerator-script\" href=\"http:\/\/www.name-generators.com\/name-generators\/name-generator-script.htm\">navnegenerator-script<\/a> til download p\u00e5 min officielle name generator blog. Scriptet er grundigt kommenteret p\u00e5 engelsk og sammen med denne tutorial, er det super nemt at komme i gang med at kode selv.<\/p>\n<p>Endelig kan mit blogindl\u00e6g <a title=\"Make a name generator\" href=\"http:\/\/www.name-generators.com\/name-generators\/how-to-make-name-generator.htm\">How to make a\u00a0 name generator<\/a> m\u00e5ske ogs\u00e5 hj\u00e6lpe.<\/p>\n<p><a title=\"Javascript hj\u00e6lp og tutorials\" href=\"http:\/\/www.w3schools.com\/js\/default.asp\">JavaScript p\u00e5 w3schools<\/a> er et godt sted, hvis du skal bruge hj\u00e6lp til javascript.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Jeg har f\u00e5et et par henvendelser om,\u00a0 hvordan man laver en navnegenerator. Derfor denne guide til, hvordan du kommer i gang. Tutorialen er henvendt til begyndere. En navnegenerator er god at starte med, hvis man vil lege med programmering. Man kommer hurtigt i gang med at kode, f\u00e5r et brugbart og sjovt resultat, samtidig med [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[11],"tags":[109,187,188],"_links":{"self":[{"href":"https:\/\/nielsgamborg.dk\/wordpress\/wp-json\/wp\/v2\/posts\/858"}],"collection":[{"href":"https:\/\/nielsgamborg.dk\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nielsgamborg.dk\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nielsgamborg.dk\/wordpress\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/nielsgamborg.dk\/wordpress\/wp-json\/wp\/v2\/comments?post=858"}],"version-history":[{"count":0,"href":"https:\/\/nielsgamborg.dk\/wordpress\/wp-json\/wp\/v2\/posts\/858\/revisions"}],"wp:attachment":[{"href":"https:\/\/nielsgamborg.dk\/wordpress\/wp-json\/wp\/v2\/media?parent=858"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nielsgamborg.dk\/wordpress\/wp-json\/wp\/v2\/categories?post=858"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nielsgamborg.dk\/wordpress\/wp-json\/wp\/v2\/tags?post=858"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}