Jeg har et javascript som ikke bliver kørt når jeg henter data via AJAX...
Kan dette afvikles på en måde...
Det kunne evt. se således ud...:
<script> function aaben(id){ layerid=document.getElementById(id); if(layerid.style.display=="none"){layerid.style.display="block"; if(window.attachEvent)dohIE_png(layerid); // kun problem i IE } }
function luk(id){ layerid = document.getElementById(id); if(layerid.style.display=="block"){ layerid.style.display="none"; } } </script>
Manuelle og semi-automatiske strategier for identitetsstyring virker - lige indtil nogen beder om dokumentation. For at undgå denne fare har DKTV taget kontrol over sin identitets- og adgangsstrategi.
Dette er den kode der fremkalder den overstående kode.... :)
<script> var xmlHttp
function site(str) { if (str.length==0) { document.getElementById("indexsite").innerHTML=""; return; } xmlHttp=GetXmlHttpObject(); if (xmlHttp==null) { alert ("Your browser does not support AJAX!"); return; } var url="get_kat.asp"; url=url+"?"+str; xmlHttp.onreadystatechange=stateChanged; xmlHttp.open("GET",url,true); xmlHttp.send(null); }
function stateChanged() { if (xmlHttp.readyState==4) { document.getElementById("indexsite").innerHTML=xmlHttp.responseText; } }
function GetXmlHttpObject() { var xmlHttp=null; try { // Firefox, Opera 8.0+, Safari xmlHttp=new XMLHttpRequest(); } catch (e) { // Internet Explorer try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } } return xmlHttp; } </script>
Som sagt er det en misforståelse at sende HTML retur til klienten - ligesom det er uhensigtsmæssigt at bruge innerHTML (som ovenikøbet aldrig har været valid i nogen standard - og formodentlig heller ikke bliver det) - og ikke mindst er det en tussegammel XMLHttpRequest-qrapper, du har kørende.
Endelig henter man ikke JavaScript på den måde - men i JS-filer.
Jeg er ikke så godt kørende i specielt Javascript men har fundet dette script i tråden...
Men det virker ikke helt efter hensigten...! Den fjerner simpelthen et billede når jeg trykker på en site('cms=3'); Fjerner kun et billede inetet andet, ingen tekst kommer eller lign...! Opdatere den hele siden eller kun feltet: <div id="indexsite"> </div> ??
<script type="text/JavaScript"> function AjaxReq(sMethod, sUrl, oVars, fnCallBack) { var oHttp = new XMLHttpRequest(); oHttp.open(sMethod, sUrl, true); oHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=utf-8"); oHttp.onreadystatechange = _fnCallBack; var aQuery = []; for (var x in oVars) aQuery.push( encodeURIComponent(x) + "=" + encodeURIComponent(oVars[x]) ); oHttp.send( aQuery.join("&") ); aQuery = null;
function _fnCallBack() { if (oHttp.readyState<4) return; fnCallBack(oHttp); oHttp = null; } return this; }
function myCallBack(oHttp) { document.getElementById("indexsite").firstChild.nodeValue = oHttp.responseText; }
function site(str) { new AjaxReq("POST", "get_kat.asp?"+str, null, myCallBack); } </script>
Kun feltet 'indexsite' - men _kun_ med en stump tekst. Sådan kan du ikke sætte HTML-elementer ind. De sættes ind med DOM ... men det er ikke så let, hvis du ikke er temmelig god til at kode frontend. Ajax kan ikke anbefales, med mindre man er ret god til at scripte =)
Nej, egentlig ikke. Jeg hører jo til de der gamle, kedelige mænd, som mener, man bør kunne det man gør - og at hvis man vil kunne mere, så må lære det, man gerne vil kunne. Det er én af årsagerne til, man så sjældent ser mig deltage i synkronsvømme konkurrencer ;o)
Måske, vi skulle overveje synkronkast til næste DM i Hardwarekast? Jeg forestiller mig dig som fristende sprød i en stram Speedo - og en fladskærm i dobbelt baghåndsgreb! *LoL* ;D
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.