Forum » Izdelava spletišč » Dostop do eksterne funkcije v dinamično naloženi JS
Dostop do eksterne funkcije v dinamično naloženi JS
imagodei ::
V html-ju imam vtaknjeno JavaScript in od tam želim dinamično naložit drugo JS.
Potem pa se blinkblonk.js, ki se dinamično naloada:
Rezultat tega je, da mi FireBug po zagonu javi:
MAddMarker() is not defined.
Kaj delam narobe?
EDIT: Ene par napakc...
<head> <script type="text/javascript"> function DynamicJsLoad() { var MarkerList = new Array(3); MarkerList[0] = new GMarker(new GLatLng(0,0)); MarkerList[1] = new GMarker(new GLatLng(0,0)); MarkerList[2] = new GMarker(new GLatLng(0,0)); var FileRef = document.createElement("script"); FileRef.setAttribute("type","text/javascript"); FileRef.setAttribute("src", "file:///s:/blinkblonk.js"); document.getElementsByTagName("head")[0].appendChild(FileRef); MarkerList = MAddMarker(); for (var i=0; i<3; i++) {GlobalMap.addOverlay(MarkerList[i]);} </script> </head> <body onload="initialize()" onunload="GUnload()"> //mam eno initialize funkcijo, ki ne dela problemov <div id="map1" style="width: 600px; height: 400px"></div> <script type="text/javascript"> var GlobalMap = new GMap2(document.getElementById("map1")); DynamicJsLoad(); </script> </body>
Potem pa se blinkblonk.js, ki se dinamično naloada:
function MAddMarker() { var LMarkerList = new Array(3); LMarkerList[0] = new GMarker(new GLatLng(0,0)); LMarkerList[1] = new GMarker(new GLatLng(0,0)); LMarkerList[2] = new GMarker(new GLatLng(0,0)); for(var i = 0; i < 3; i++) { LMarkerList[i].setLatLng(new GLatLng((46.36090 + i /100),(14.15530 + i/100))); } return LMarkerList; }
Rezultat tega je, da mi FireBug po zagonu javi:
MAddMarker() is not defined.
Kaj delam narobe?
EDIT: Ene par napakc...
- Hoc est qui sumus -
- spremenil: imagodei ()
root987 ::
Si prepričan da je blinkblink.js na isti domeni? JS zna bit kr tečn glede teh same-domain stvari, ta absolute path je pa mal sumljiv...
Moj nasvet - uporabi jQuery, ki omogoča nalaganje stvari tudi iz drugih domen.
Moj nasvet - uporabi jQuery, ki omogoča nalaganje stvari tudi iz drugih domen.
"Myths which are believed in tend to become true."
--- George Orwell
--- George Orwell
imagodei ::
root,
blinkblonk je lokalno na računalniku, tko kot tudi html, v katerem teče "main" js. Se strinjam, se bom držal jQuery-ja, so mi že drugi tudi svetovali. Drugače sem zadevo sedaj rešil tako, da sem tistle postopek razbil v dve funkciji, poleg tega sem pa dodal še funkcijo IsLoaded:
Baje je fora v tem, da sem prehitro klical funkcijo (čeprav sem preveril onLoad dogodek ?!). Zdaj pa pač čakam da prepozna funkcijo, v nasprotnem primeru se vidimo čez 0,5 sekunde.
blinkblonk je lokalno na računalniku, tko kot tudi html, v katerem teče "main" js. Se strinjam, se bom držal jQuery-ja, so mi že drugi tudi svetovali. Drugače sem zadevo sedaj rešil tako, da sem tistle postopek razbil v dve funkciji, poleg tega sem pa dodal še funkcijo IsLoaded:
function IsLoaded() { if(typeof MAddMarker != 'function') { var t=setTimeout("IsLoaded()",500); } else { PlaceMarkers(); } }
Baje je fora v tem, da sem prehitro klical funkcijo (čeprav sem preveril onLoad dogodek ?!). Zdaj pa pač čakam da prepozna funkcijo, v nasprotnem primeru se vidimo čez 0,5 sekunde.
- Hoc est qui sumus -
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Google maps API ne deluje v wordpressOddelek: Izdelava spletišč | 1882 (1137) | shark_nm |
» | E-računOddelek: Programiranje | 7470 (4233) | ivanhoe5x |
» | [Java]Shranjevanje/Branje nastavitev za povezavo z podatkovno bazoOddelek: Programiranje | 2629 (2403) | KernelPanic |
» | Javascript problemcekOddelek: Programiranje | 1596 (1389) | tempoFlow |
» | js generiran input hidden noče biti POSTan z phpOddelek: Izdelava spletišč | 1815 (1732) | Buffy |