2012-03-26 14 views
0

私はJavaScriptとAjaxに少し慣れていますので、私に同行してください。私はリンクをクリックすると、div内のコンテンツを置き換えるためにajax関数を使用しようとしています。私はエラー "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 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はい私は頭の部分にそれを入れるつもりでした。私は実際にそれを私の頭の中に入れようとしていました。 scottcal

+0

@scottcal:私の答えが更新され、jQueryを使うことをお勧めします。 –

+0

すばらしいおかげで、私はそれを試してみましょう! – scottcal

関連する問題