Det er en række lightbokse som jeg bruger. Kan jeg gøre noget i den her stil. function lavLightbox(){ var light=document.createElement('script'); var text = document.createTextNode("MIT LIGHTBOX_SCRIPT"); light.setAttribute("type","text/javascript"); light.appendChild(text);
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
var text = document.createTextNode("MIT LIGHTBOX_SCRIPT");
Har prøvet med
var iframe="#iframe"; document.createTextNode("$(document).ready(function() {$("+iframe+").lightbox({'width':500,'height':400,'transitionIn':'fade','transitionOut':'fade','speedIn':1500,'speedOut':1500,'scrolling':'no','type':'iframe','overlayOpacity':'0.8','overlayColor':'#000','centerOnScroll':'true'});});");
Får en illegal character fejl, men jeg kan ikke se hvad der går galt
Hvis man kun afvikler den en gang kan dens hastighed vel være underordnet.
Dens sikkerhed syntes jeg allerede jeg havde taget højde for.
Og min tanke var, at det som brugeren ønskede var at kunne give en tekst, og få fortolket den som javascriptkode. Hvad vel mere eller mindre er præcis, hvad eval gør.
Grunden til jeg gerne vil skrive JS ud som tekst er fordi jeg ønsker at flytte det op i head tagget. Jeg har et stykke kode som genererer JS samt et link. Det er et element som kan blive kørt X antal gange. Det betyder at JS ligger og roder rundt i mit markup. Det var egenligt bare det jeg ville undgå.
Det var noget i den retning, jeg forestillede mig - og spørgsmålet lyder derfor stadig: Hvorfor skrive/generere JS som tekst? Hvorfor ikke generere det som eksekverbar JS?
Problemet er ikke at det ikke virker, for det virker sådan set fint. Sagen er at jeg gerne vil have alt hvad der handler om lightbox sammen og op i head hvor det hører hjemme.
Ja, det er forlængst gået op for mig, at du skriver noget kode ud i tekst. Hvordan den ser ud, er jeg i første omgang ligeglad med. Det, der er interessant for din løsning er, hvordan det foregår - og om du ikke ligeså godt kan kalde jQuery uden at skrive kode ud i tekst =)
I øvrigt kan man ikke sige, at JavaScript 'hører hjemme' i HEAD elementet. Det er absolut intet i vejen for, at JS kan stå i BODY elementet. Det resulterer ikke i dårligere kode
Som jeg hører det er det jeg vil i virkeligheden meningsløst. Logikken i koden indsætter
$(document).ready(function() { osv
på baggrund af nogle variable. Det sker så X antal gange. Hvordan jeg havde tænkt mig det skulle virke fremgår af selve spørgsmålet. Hvorfor var egenlig bare for at gøre koden mere overskuelig.
Jeg har fået svar på mit spørgsmål og siger tak for indlæggene :-)
"Som jeg hører det er det jeg vil i virkeligheden meningsløst" >> Som jeg hører det, lytter du ikke efter - og 'hører' derfor noget, der hverken er blevet sagt eller ment.
"Hvordan jeg havde tænkt mig det skulle virke fremgår af selve spørgsmålet" >> Ja, men det er heller ikke det, der bliver spurgt om.
Hvis det skyldes, at du har et script tag, skrevet ud i BODY elementet - og du af en eller anden grund gerne vil fjerne det - kan du jo bare gøre det. Dets funktioner er læst ind i hukommelsen, når browseren har læst scriptet. Prøv f.eks. dette dokument i en browser (klik gerne et par gange på knappen - scriptet bliver kørt, selvom tagget er fjernet):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Untitled Document</title> </head> <body>
<script type="text/javascript"> function foo() { alert("Før: "+document.body.innerHTML); var aScripts = document.getElementsByTagName("script"); if (aScripts.length>0) { for (var i=0; i<aScripts.length; i++) aScripts[i].parentNode.removeChild(aScripts[i]); } alert("Efter: "+document.body.innerHTML); } </script>
<p><button onclick="foo()">Send</button></p>
</body> </html>
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.