2012-01-07 6 views
2

リモートURLからJavaScriptファイルを動的に読み込む必要がありますが、ヘッダーに追加する前に受信したスクリプトを少し変更する必要があります。jquery ajaxはGETの改行を削除します

問題がある:私は、改行せずにJSファイルの内容を取得していますので、内部のいくつかのコメントがある場合 - すべてのスクリプトが動作するように停止した。..

私が使用したコードは次のとおりです。

 $.ajax({ 
      url: filename, 
      type: "GET", 
      success: function (res) { 
       var ver = $(res.responseText); 
       var jsContent = $(ver).text(); 

       jsContent = jsContent.replace('..', '...'); 

       var oScript = document.createElement("script"); 
       oScript.language = "javascript"; 
       oScript.type = "text/javascript"; 
       oScript.defer = true; 
       oScript.text = jsContent; 
       document.getElementsByTagName("head")[0].appendChild(oScript); 
      } 
     }); 

+0

あなたは読み込まれているスクリプトを変更できない理由はありますか?そして、私はあなたがevalを使わなくてもやりたいことをする方法があるとは思わない –

+0

'$ .ajax()'の代わりに '$ .get()'を使ってみましたか?理論的には同じですが、後者のストリップラインブレイクがあります(http://stackoverflow.com/questions/7017068/why-does-jquery-ajax-remove-line-breaks-in-data-and-get -doesnt)。 –

答えて

5

あなただけ動的にJSファイルをロードしようとしている場合は、あなたは.getScript機能をデータ型に「スクリプト」を設定するか、または使用する必要が

$.ajax({ 
     url: filename, 
     type: "GET", 
     dataType:"script", 
     success: function (res) { 

     } 
    }); 

または

$.getScript(url); 

http://api.jquery.com/jQuery.getScript/

関連する問題