2012-03-26 18 views
0

Ich bin ein wenig neu zu Javascript und Ajax so mit mir zu tragen. Ich versuche eine Ajax-Funktion zu verwenden, um Inhalt in einem Div zu ersetzen, wenn ich auf einen Link klicke. Ich bekomme immer den Fehler "Ajaxpage ist nicht definiert". Ajaxpage ist meine Funktion in der js. Dies ist ein Beispielcode, den ich unter dem folgenden Link gefunden habe: http://www.dynamicdrive.com/dynamicindex17/ajaxcontent.htm Jede Hilfe wird sehr geschätzt.Ajax ersetzen div Inhalt

Link-Code:

<a href="javascript:ajaxpage('about.html', 'content');">About</a> 

Kopf:

<script type=”text/javascript” src="/js/ajax.js"></script> 

Div

<div id="content"> 
</div> 

ajax.js Datei ersetzt werden:

< script type = "text/javascript" > 

/*********************************************** 
* Dynamic Ajax Content- © Dynamic Drive DHTML code library (www.dynamicdrive.com) 
* This notice MUST stay intact for legal use 
* Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code 
***********************************************/ 

var bustcachevar = 1 
//bust potential caching of external pages after initial request? (1=yes, 0=no) 
var loadedobjects = "" 
var rootdomain = "http://" + window.location.hostname 
var bustcacheparameter = "" 

function ajaxpage(url, containerid) { 
    var page_request = false 
    if (window.XMLHttpRequest) 
    // if Mozilla, Safari etc 
    page_request = new XMLHttpRequest() 
    else if (window.ActiveXObject) { 
     // if IE 
     try { 
     page_request = new ActiveXObject("Msxml2.XMLHTTP") 
     } 
     catch(e) { 
      try { 
       page_request = new ActiveXObject("Microsoft.XMLHTTP") 
      } 
      catch(e) {} 
     } 
    } 
    else 
    return false 
    page_request.onreadystatechange = function() { 
     loadpage(page_request, containerid) 
    } 
    if (bustcachevar) 
    //if bust caching of external page 
    bustcacheparameter = (url.indexOf("?") != -1) ? "&" + new Date().getTime() : "?" + new Date().getTime() 
    page_request.open('GET', url + bustcacheparameter, true) 
    page_request.send(null) 
} 

function loadpage(page_request, containerid) { 
    if (page_request.readyState == 4 && (page_request.status == 200 || window.location.href.indexOf("http") == -1)) 
    document.getElementById(containerid).innerHTML = page_request.responseText 
} 

function loadobjs() { 
    if (!document.getElementById) 
    return 
    for (i = 0; i < arguments.length; i++) { 
     var file = arguments[i] 
     var fileref = "" 
     if (loadedobjects.indexOf(file) == -1) { 
      //Check to see if this object has not already been added to page before proceeding 
      if (file.indexOf(".js") != -1) { 
       //If object is a js file 
       fileref = document.createElement('script') 
       fileref.setAttribute("type", "text/javascript"); 
       fileref.setAttribute("src", file); 
      } 
      else if (file.indexOf(".css") != -1) { 
       //If object is a css file 
       fileref = document.createElement("link") 
       fileref.setAttribute("rel", "stylesheet"); 
       fileref.setAttribute("type", "text/css"); 
       fileref.setAttribute("href", file); 
      } 
     } 
     if (fileref != "") { 
      document.getElementsByTagName("head").item(0).appendChild(fileref) 
      loadedobjects += file + " " 
      //Remember this object as being already added to page 
     } 
    } 
} 

< /script>/ 

Antwort

0

AKTUALISIERT:

Ich habe eine Demo für Sie hier: http://jsfiddle.net/sg552sg552/wsSCF/8/, ich denke, es funktioniert.

p.s. Ich schlage vor, Sie verwenden jQuery.ajax oder jQuery.load. Dies ist eine Demo von jQuery-Version: http://jsfiddle.net/sg552sg552/YAUeA/12/

für mehr Details jQuery offiziellen doc sehen: http://api.jquery.com/load/

----------------- OLD Antwort ---- ------------------- Haben Sie jemals die Datei "ajax.js" auf Ihrer Seite angegeben? z.B.

<html> 
    <head> 
    <script src="ajax.js" type="text/javascript"></script> 
    </head> 
    <!-- body div... --> 
</html> 
+0

oops ja ich wollte ich das in die Kopfbereiche legen. Eigentlich wollte ich es hier einfügen: scottcal

+0

@scottcal: Ich habe meine Antwort aktualisiert und empfehle Ihnen, jQuery zu verwenden. –

+0

Vielen Dank, ich werde es versuchen! – scottcal