2012-02-21 14 views
0

リンクをクリックすると、応答を取得するためにajax呼び出しを送信していますが、応答ページにスクリプトタグが正しく機能していません。その応答ページ "firstelement.html"ajaxページ内でスクリプトを実行する方法

function ajaxenabled(url,param,id) 
{ 
    var page_request = false  
    if (window.XMLHttpRequest){ 
     page_request = new XMLHttpRequest() 
    } 
    else if (window.ActiveXObject){ 
     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(){ 
      if(param!=null) 
      { 
       loadpage(page_request, param,id); 
      } 
      if(param==null) 
      { 
       loadpage(page_request,'',id); 

      } 
     } 
     page_request.open('GET', url, true); 
     page_request.send(null); 
} 


function loadpage(page_request,param,id){ 

    var getblock=document.getElementById(id); 

    if(page_request.status==200) { 
     getblock.style.display='block'; 
     getblock.innerHTML=page_request.responseText; 

    if(param!=null) 
     { 
      //alert("showed"); 
     } 

    } 

} 
javascriptのコードこれは、HTMLページは

<HTML> 
<HEAD> 

<link rel="stylesheet" type="text/css" href="css/global.css"> 
<script type="text/javascript" src="js/ajaxgetter.js"></script> 
<script type="text/javascript" src="js/mootools.js"></script> 
</HEAD> 

<BODY> 

<h1>ajax block container</h1> 

<div id="container"> 
    <div id="tab_wrapper"> 
     <ul id="tab_list" > 
      <li> 
      <a href="#" id="firstelement" onclick="ajaxenabled('elements/firstelement.html','firstelement','content_tab')">Number 1 </a>    
      </li> 
      <li> 
      <a href="#" id="secondelement" onclick="ajaxenabled('elements/secondelement.html','secondelement','content_tab')">Number 2</a> 
       <br/><br/><br/> 
       </li> 

     </ul> 
    </div> 

<br/><br/><br/><br/><br/><br/> 

<div id="content_tab"> 

</div> 
</div> 

</BODY> 
</HTML> 

ある

を実行

<h1>First Element having ajax call</h1> 

<script type="text/javascript"> 
alert("testing the simple function"); 
</script> 

アラート現在のスクリプト]タブ内の作り方firstelement.htmlの内部は起動されません。

+0

mootoolsを実行しますが、要求クラスは使用しないでください。リクエストには特別なオプション 'evalScripts:true | false'があります。これはあなたが使うことができます。 –

答えて

0

このスクリプトをHTMLファイル内から.jsファイルに移動し、ajax呼び出しを正常に終了した後でそのスクリプトを呼び出す必要があります。 あなたのHTMLファイルは次のようになります。

<HTML> 
    <HEAD> 

    <link rel="stylesheet" type="text/css" href="css/global.css"> 
    <script type="text/javascript" src="js/ajaxgetter.js"></script> 
    <script type="text/javascript" src="js/mootools.js"></script> 
    <script type="text/javascript" src="js/YOUR_SCRIPT_FILE_HERE.js"></script> 
    </HEAD> 

    <BODY> 

    <h1>ajax block container</h1> 

    . 
    . 
    . 

あなたはもちろん、あなたが「JS」ディレクトリ内に置く.jsファイルに

<script type="text/javascript"> 
alert("testing the simple function"); 
</script> 

を移動します。

function loadpage(page_request,param,id){ 

var getblock=document.getElementById(id); 

if(page_request.status==200) { 
    getblock.style.display='block'; 
    getblock.innerHTML=page_request.responseText; 
    afterAjaxSuccess();        //updated line here 

if(param!=null) 
    { 
     //alert("showed"); 
    } 

} 

}

:あなたは.jsファイルは、この

function afterAjaxSuccess(){ 
    alert("testing the simple function"); 
    } 

のようなものを持っていますし、その後、あなたのhtmlファイルにこのようなあなたのloadpage方法を更新するように呼び出すことができる方法として、それを行うことを忘れないでください

とあなたのHTMLページには、任意のスクリプトなし

<h1>First Element having ajax call</h1> 

なり

+0

これを実現する方法を実証できますか? –

+0

答えを –

+0

Thnxの回答を更新しました。私は試してみましょう –

0

mootools Request.HTMLを使用すると、返されたページ内のすべてのスクリプトタグが評価され、オプションで更新が設定されている場合は要素のhtmlが置き換えられます。

関連する問題