2011-03-26 68 views
0

我打開一個網頁使用jQuery .load(file.php)刷新.js文件沒有按F5

我有一個.js包括像file.php:<script src='js/script.js' type="text/javascript" language="javascript"></script>

當我加載file.php,他止跌加載我的JS文件...有誰知道爲什麼以及如何解決它?

謝謝

+0

應該得到加載並執行。是什麼讓你覺得它不是? – 2011-03-26 23:14:56

+0

使用Chrome開發人員工具或Firefox Firebug(或其他瀏覽器中的等效工具)查看服務器正在請求什麼,以及它爲什麼可能失敗。 – Amadan 2011-03-26 23:16:38

回答

0

檢查路徑,使.JS文件的絕對路徑,它應該加載。

<script src='/js/script.js' type="text/javascript" language="javascript"></script> 

只是要積極嘗試像這樣...

function ajax(url, selector){ 
    $.ajax({ 
    type: "GET", 
    url: url, 
     success: function(data){ 
      $(selector).html(data); 
     } 
    }); 
} 

ajax("file.php", "#mydiv"); 
+0

的路徑是正確的,當我打開file.php直接它的作品..但如果我加載與jQuery的.php文件,他忽略了js文件:\ – njaknjak 2011-03-26 23:16:47

+0

馬克加載內容和**查看選擇源**(FF ),檢查HTML是否沒有被破壞。可能是不是,但替換雙引號** src = ** ... – 2011-03-26 23:19:08

+0

它沒有壞..但我認爲我不能加載.js文件與.load:\ – njaknjak 2011-03-26 23:24:22

0

如何只創建腳本標籤?另外確保鏈接正確。另外,我聽說IE瀏覽器在動態腳本標記方面存在一些問題,那麼你使用IE嗎?

$("<script src='js/script.js' type='text/javascript' ></script>").appendTo("head"); 
+0

等待,我會測試....我使用Firefox和safari順便說一句----這不工作:( – njaknjak 2011-03-26 23:20:15

+0

好吧,嗯... – mattsven 2011-03-26 23:31:09

1

我不知道爲什麼,但jQuery的清晰腳本元素時負荷的html。

我最近遇到了同樣的問題,經過幾天在谷歌搜索後,我可以實現一個解決方法。

$.ajax({ 
    url: 'mypage.aspx', 
    data: eval('(' + MyData + ')'), 
    dataType: 'html', 
    success: function (data) { 
     var $div = $('<div></div>').hide().appendTo($("#MY_DIV")).html(data).remove(); 
     var innerData = $(data).html(); 
     $("#MY_DIV").html(innerData); 
    } 
}); 

其他可能的方式是添加腳本在當前頁:

$.ajax({ 
    url: 'mypage.aspx', 
    data: eval('(' + MyData + ')'), 
    dataType: 'html', 
    success: function (data) { 

     //Add to DOM scripts from the loaded page. 
     var headID = document.getElementsByTagName("head")[0]; 
     var arr = data.match(/<script(.|\n|\t)*?script>/gi); 
     if (arr != null) { 
      for (var i = 0; i < arr.length; i++) { 
       if (arr[i].match(/<.*?src=.*?>/) != null) { 
        var sSrc = arr[i].match(/src=".*?"/)[0]; 
        sSrc = sSrc.replace('src=', '').replace('"', '').replace('"', ''); 
        var newScript = document.createElement('script'); 
        newScript.type = 'text/javascript'; 
        newScript.src = sSrc; 
        headID.appendChild(newScript); 
       } 
      } 
     } 
     var arr = data.match(/<link(.|\n|\t)*?>/gi); 
     if (arr != null) { 
      for (var i = 0; i < arr.length; i++) { 

       if (arr[i].match(/<.*?href=.*?>/) != null) { 
        var sHref = arr[i].match(/href=".*?"/)[0]; 
        sHref = sHref.replace('href=', '').replace('"', '').replace('"', ''); 
        var newLink = document.createElement('link'); 
        newLink.rel = "stylesheet"; 
        newLink.type = "text/css"; 
        newLink.media = "all"; 
        newLink.href = sHref; 
        headID.appendChild(newLink); 
       } 
      } 
     } 

     $("#MY_DIV").html(data); 
    } 
}); 
+0

會很好,如果你給我的整個代碼...因爲它沒有爲我工作..也許我做了錯誤.. – njaknjak 2011-03-27 00:01:23

+0

我通常把我所有的腳本放在一個調用頁面。也許看到[this](http://www.bennadel.com/blog/1605-jQuery-AJAX-帶腳本標籤 - 和 - 插入了他們,之後,家長最Elements.htm)。 – 2011-03-27 01:18:28