[JAVASCRIPT] .innerHTML = '<script src="" ...

Pagina: 1
Acties:
  • 485 views sinds 30-01-2008
  • Reageer

  • g4wx3
  • Registratie: April 2007
  • Laatst online: 12-10 08:33
Hey
Ik probeer een javascriptje te includen mbhv innerHTML
Dit omdat het alleen geinclude mag worden, als er internet verbinding is (anders krijg ik een fout bij offline gebruik)

wat ik wil is dus:
code:
1
2
3
4
5
6
<div id="meteo"></div>
var meteo_div = document.getElementById('meteo');
if (meteo_div) {
meteoHTML = '<script type="text/javascript" src="http://home.weeronline.com/cgi-bin/nph-h?WMO=06436&amp;PLZN=Voerstreek&amp;L=nl"></script>');
meteo_div.innerHTML = meteoHTML;
}

Natuurlijk werkt dat niet


ik heb op internet al gevonden dat je het kan dan mbv een (virtuele?) iframe, maar ik kom er niet aan uit.

code:
1
2
3
4
5
var iframeDoc = window.frames.theFeed.document;
iframeDoc.open();
iframeDoc.write('<script type="text/javascript" src="http://home.weeronline.com/cgi-bin/nph-h?WMO=06436&amp;PLZN=Voerstreek&amp;L=nl"><\/script>');
meteoHTML  = window.frames.theFeed.document.innerHTML
iframeDoc.close();

bron

[ Voor 5% gewijzigd door g4wx3 op 07-06-2007 11:20 ]

http://www.softfocus.be/


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 28-11 20:43

chem

Reist de wereld rond

Je innerHTML idee is het probleem; zet de src="..." als element in je head, dus een bla = document.createElement('script'); head.appendChild(bla)

Klaar voor een nieuwe uitdaging.


  • P.O. Box
  • Registratie: Augustus 2005
  • Niet online
ik weet niet of het kan hoor, maar kun je je script element niet een id geven, en dan dynamisch een src toekennen?

dus zoiets:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
<html>
<head>
<script id="myScript" type="text/javascript" language="JavaScript" />
<script type="text/javascript" language="JavaScript">
    function CheckIt() {
        if (meteo_is_online) {
               myScript.src = "http://home.weeronline.com/cgi-bin/nph-h?WMO=06436&amp;PLZN=Voerstreek&amp;L=nl";
        }
    }
</script>
</head>
<body>


zoiets?

  • g4wx3
  • Registratie: April 2007
  • Laatst online: 12-10 08:33
je idee om er een id aan toe te voegen was wel goed gevonden, maar hij veegt dan mijn hele pagina weg.

dit snap ik niet:
document.createElement('script'); head.appendChild(bla)

ik heb op internet gezocht maar heb geen oplossing kunnen vinden

Ik ga me u even concentreren op een ander deel van de site, in de hoop dat er hiervoor nog een oplossing uit de bus komt

http://www.softfocus.be/


  • P.O. Box
  • Registratie: Augustus 2005
  • Niet online
g4wx3 schreef op donderdag 07 juni 2007 @ 12:35:
je idee om er een id aan toe te voegen was wel goed gevonden, maar hij veegt dan mijn hele pagina weg.

dit snap ik niet:
document.createElement('script'); head.appendChild(bla)
daar zou ook moeten staan:
code:
1
2
bla = document.createElement('script'); 
head.appendChild(bla);


misschien dan?

  • soulrider
  • Registratie: April 2005
  • Laatst online: 27-11-2017
Edwardvb schreef op donderdag 07 juni 2007 @ 12:52:
[...]


daar zou ook moeten staan:
code:
1
2
bla = document.createElement('script'); 
head.appendChild(bla);


misschien dan?
idd zoek maar eens op includen van js via ajax.
anders wordt de javascript namelijk niet 'erkent' door de browser.
via:
code:
1
2
3
bla = document.createElement('script'); 
bla.innerText = "je javascript-code hier";   of bla.src="...blabla.js";
head.appendChild(bla);


(ben er zelf ook mee beziggeweest voor een site)
wel zo makkelijk om anders in je html-code al een
code:
1
<script id="dynscript"></script>

kan je nadien src, innerText, type enzo aanpassen
(is hetzelde als hier boven maar dan incl. de sluit tag die er _moet_ staan)
via bv:
code:
1
2
bla=document.getElementById["dynscript"];
bla.type= ....;

zonder dat je bij meemaals klikken anders tig keren dezelfde code krijgt
(kan zichtbaar gemaakt worden via FF en de DOM inspector daarvan)
Kreeg ik namelijk met mijn pagina
(5x klikken = 5x dezelfde code erbij ingeplakt tot ik het zo oploste :) )

edit: en dit is wrs meer dan genoeg hulp om de TS op de weg te zetten :)

[ Voor 6% gewijzigd door soulrider op 07-06-2007 13:02 ]


  • frickY
  • Registratie: Juli 2001
  • Laatst online: 01-12 13:11
IE wil wel eens problemen hebben met strings als deze
JavaScript:
1
meteoHTML = '<script type="text/javascript" src="http://home.weeronline.com/cgi-bin/nph-h?WMO=06436&amp;PLZN=Voerstreek&amp;L=nl"></script>');

Om de een of andere manier parsed hij de script-tag, in plaats van deze in de variabele te stoppen. Dit kun je oplossen met een variant als
JavaScript:
1
meteoHTML = '<sc' + 'ript ty' + 'pe="text/jav' + 'ascript" src="http://home.weeronline.com/cgi-bin/nph-h?WMO=06436&amp;PLZN=Voerstreek&amp;L=nl"></scri' + 'pt>');

Verwijderd

Onder het motto "kant-en-klaar dan maar":

JavaScript:
1
2
3
4
5
6
function include(uri) {
  var elm = document.createElement('script');
  elm.type = 'text/javascript';
  elm.src = uri;
  document.getElementsByTagName('head')[0].appendChild(elm);
}


En dan ergens:
JavaScript:
1
include('http://home.weeronline.com/cgi-bin/nph-h?WMO=06436&amp;PLZN=Voerstreek&amp;L=nl');


(Let wel op dat de JavaScript niet direct (synchroon) geladen wordt; na de include()-call kun je er nog geen functies van aanroepen of iets dergelijks.)

  • MG-studios
  • Registratie: Juni 2007
  • Laatst online: 15-11 20:38
Verwijderd schreef op donderdag 07 juni 2007 @ 14:34:
(Let wel op dat de JavaScript niet direct (synchroon) geladen wordt; na de include()-call kun je er nog geen functies van aanroepen of iets dergelijks.)
Relaterend aan dit topic: hoe zorg ik ervoor dat dat wel gebeurd? Zodat het vergelijkbaar is met een script dat in de 'head' van de hoofdpagina word ingeladen?

Verwijderd

Verwijderd in "Javascript en JAH" :)

[ Voor 16% gewijzigd door Verwijderd op 07-06-2007 15:14 ]


  • g4wx3
  • Registratie: April 2007
  • Laatst online: 12-10 08:33
Fantastisch, harstikke bedankt!
Zelf was ik er echt noooit aan uitgekomen,

http://www.softfocus.be/

Pagina: 1