2012-03-26 4 views
0

Я немного новичок в javascript и ajax, так что медведь со мной. Я пытаюсь использовать функцию ajax для замены содержимого в div, когда я нажимаю на ссылку. Я продолжаю получать ошибку «ajaxpage не определен». ajaxpage - моя функция в js. Это пример кода, который я нашел по следующей ссылке: http://www.dynamicdrive.com/dynamicindex17/ajaxcontent.htm Любая помощь очень ценится.Ajax заменить содержимое div

код

Ссылка:

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

Руководитель:

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

Div заменить

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

ajax.js файл:

< 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>/ 

ответ

0

ОБНОВЛЕНО:

Я сделал демо для вас здесь: http://jsfiddle.net/sg552sg552/wsSCF/8/, я думаю, что это работает.

p.s. Я предлагаю вам использовать jQuery.ajax или jQuery.load. это демо-версии JQuery в: http://jsfiddle.net/sg552sg552/YAUeA/12/

подробнее см официальный документ JQuery в: http://api.jquery.com/load/

----------------- OLD ответ ---- ------------------- Вы когда-нибудь ссылались на файл "ajax.js" на своей странице? например

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

oops yes Я сделал это, чтобы положить это в секции головы. Я на самом деле хотел поставить его здесь, это моя голова: scottcal

+0

@scottcal: Я обновил свой ответ и предложил вам использовать jQuery. –

+0

Огромное спасибо, я попробую! – scottcal