Avatar billede millerbean Praktikant
25. august 2011 - 21:57 Der er 7 kommentarer og
1 løsning

Hjælp til Javascript

HTML

<html>
<head>
<script src="AjaxMethods.js"></script>
</head>

<body>
<div id="myDiv"><h2>Let AJAX change this text</h2></div>
<button type="button" onclick="java script:System.GetPersonInfo();">Change Content</button>
</body>

</html>

--AjaxMethods.js

function System()
{
}

System.GetPersonInfo = function()
{
    New AjaxRequest('test.txt',System.GetPersonInfoCallBack);
}

System.GetPersonInfoCallBack = function(request)
{
  document.getElementById("myDiv").innerHTML =  request.responseText;
}

--Ajax.js

function AjaxRequest(url, callbackfunction)
{
var xmlhttp;

if (window.XMLHttpRequest)
  {
  xmlhttp=new XMLHttpRequest();
  }

else if(window.ActiveXObject)
  {
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }

else
{
  alert("your browser doesn't support AJAX");
  return false;
}

var callbackFunction = callbackfunction;
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
      callbackFunction(xmlhttp);
    }
  }
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}


Min System.GetPersonInfo fejler. Er det ikke muligt at kalde en metode fra en anden js fil i samme folder på denne måde ?

Jeg vil gerne have Ajax funktionaliteten i en klasse for sig, så den er indkapslet mest muligt.
Avatar billede olebole Juniormester
25. august 2011 - 22:22 #1
<ole>

Ret


function System()
{
}


- til:


var System = {};


/mvh
</bole>
Avatar billede olebole Juniormester
25. august 2011 - 22:30 #2
- men når man bruger Ajax, HTML formaterer man ikke data på serveren. Det er alt for ineffektivt. I stedet formateres data i JSON eller XML. Ved ankomsten parser scriptet i browseren responsen, og indsætter data i dokumentet med DOM
Avatar billede millerbean Praktikant
25. august 2011 - 22:34 #3
Er det en anden måde at angive namespace på ?

Jeg kom videre, men nu skriver den adgang nægtet.

Kan man ikke afprøve koden uden at lægge det på en server.

Har forsøgt at afvikle koden lokalt på min computer.
Avatar billede olebole Juniormester
25. august 2011 - 22:57 #4
Njah, det er ikke en anden måde. Det er - i modsætning til din kode - en måde  =)

Det er jo en XMLHTTPRequest. Så du skal uploade til en server - enten på nettet eller lokalt.
Avatar billede olebole Juniormester
25. august 2011 - 23:06 #5
Vedr. namespaces, så kan du i JS oprette et object på flere måder:


var obj = {};

  // eller:
var obj = new Object();

  // eller:
var MyConstructorFunktion() {};
var obj = new MyConstructorFunktion();


- og husk, at JS er casesensitive, så det hedder new - med lille
Avatar billede millerbean Praktikant
25. august 2011 - 23:37 #6
Super

Er ikke den store haj til Javascript.

Smid et svar.
Avatar billede olebole Juniormester
26. august 2011 - 00:02 #7
Ellers tak, jeg samler ikke points. Læg selv et svar og accepter det, så tråden lukkes  =)
Avatar billede millerbean Praktikant
26. august 2011 - 19:15 #8
Svar
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester