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šč | 2146 (1401) | shark_nm |
| » | E-računOddelek: Programiranje | 8084 (4847) | ivanhoe5x |
| » | [Java]Shranjevanje/Branje nastavitev za povezavo z podatkovno bazoOddelek: Programiranje | 2951 (2725) | KernelPanic |
| » | Javascript problemcekOddelek: Programiranje | 1714 (1507) | tempoFlow |
| » | js generiran input hidden noče biti POSTan z phpOddelek: Izdelava spletišč | 1943 (1860) | Buffy |