2009-11-09 53 views
1

我想在某些ajax內容的末尾添加一個Javascript, 它在Firefox上正常工作,但Internet Explorer不打印腳本而不運行它。Ajax內部的JavaScript - Internet Explorer

<script type="text/javascript"> 
    $.tablesorter.addParser({ 
     id: 'title', 
     is: function(s) 
     { 
      return false; 
     }, 
     format: function(s) 
     { 
      s= s.substring(s.indexOf('<span class="title">')+24,s.length-30); 
      return s.replace(' ',''); 
     }, 
     type: 'text' 
    }); 

    $.tablesorter.addParser({ 
     id: 'price', 
     is: function(s) 
     { 
      return false; 
     }, 
     format: function(s) 
     { 
      s= s.substring(0,s.length-3); 
      return s.replace(' ',''); 
     }, 
     type: 'digit' 
    }); 
    $(document).ready(function() 
    { 
     $("#result").tablesorter({ 
      headers: { 
       0: {sorter:'title'}, 
       1: {sorter:'price'}, 
       2: {sorter: false} 
      } 
     }); 
    }); 
    </script> 



function submitForm() 
{ 
$("form#search").ajaxSubmit({ 
      beforeSubmit: function(formData, jqForm, options) { 
       $("#window").html('<div style="text-align:center; display:block;"><img src="../images/commun/spinner.gif" /></div>'); 
       return true; 
      }, 
      success: function(msg, statut) { 
       $("#window").html(msg); 
       return false; 
      } 
      }); 
} 
+0

這是你想添加的腳本嗎?你如何添加它? 「在某些AJAX內容的末尾」是什麼意思? – Marius 2009-11-09 13:54:10

+0

你有沒有調用ajax方法的例子?上面的代碼似乎沒有任何相關的問題 – 2009-11-09 13:55:06

+0

@Marius包含JavaScript位的代碼位用submitForm函數加載了ajax。 – Roch 2009-11-09 14:01:28

回答

2

您應該使用getScript來加載和運行腳本。您不能將腳本與html內容混合使用。還要確保服務器響應的上下文類型設置爲javascript MIME類型,如「text/javascript」。

2

我有同樣的問題,我所做的只是把腳本內容的div中有一個特殊的類名。一旦我得到響應並將其輸入到DOM中,我就會提取該腳本內容並簡單地將其評估()。這適用於所有瀏覽器:-)

0

錯誤原因80020101是,如果腳本包裝在cdata註釋中,IE無法加載/觸發在JQuery 1.6中使用AJAX返回的腳本。 因此,刪除代碼中的CDATA(< - ... - >),它應該可以工作。