2011-03-27 230 views
0

我正在處理一個小的代碼片段。用jQuery/Ajax加載內容

的問題: 我想有幾個按鈕,上點擊內容加載到一個div,用ajax。

我能得到它的工作絕對沒問題,有說圖像和文本。但不能加載CSS和JS。

實施例:在索引頁:

<input type="button" onclick="example_ajax_request()" value="Click Me!" /> | <input type="button" onclick="example_ajax_request2()" value="Or Me!" /> 
<div id="example-placeholder"> 
    <p>Placeholding text</p> 
</div> 

<script type="text/javascript"> 
function example_ajax_request() { 
    $('#example-placeholder').html('<p><img src="images/loader.gif" width="220" height="19" /></p>'); 
    $('#example-placeholder').load("fat.html"); 
} 
</script> 
<script type="text/javascript"> 
function example_ajax_request2() { 
    $('#example-placeholder').html('<p><img src="images/loader.gif" width="220" height="19" /></p>'); 
    $('#example-placeholder').load("joined_today.html"); 
} 
    </script> 

頁joined_today.html是一個完全成熟的網頁(其含有一個div元素)只,shaows AMCHARTS。其中顯然利用js inc Raphael。

安美居,產生的問題是,從標題,html和body標籤的任何網頁。上面的腳本不渲染這些。

那麼我做錯了什麼。看似,我們只能加載到DIV ID example_placeholder內容,這並不包括JS,CSS或

有沒有更好的辦法。

基本上我們的方案是這樣的(我想avoide iFrame中)

我們的網頁和內容DIV,與DIV上述3個按鍵。 上的每個按鈕的點擊,在div被裝入一個圖表(使用amcharts js版) 在另一個按鈕的點擊,另一個圖表被載入第一個圖表的就地,等等等等

也許我會對此錯誤,任何幫助表示讚賞。

科技教育

+1

您無法將腳本標記加載到div的中間。 CSS只要內聯就不成問題。你真的需要這些動態生成的東西嗎?對於CSS,我會根據AJAX輸出設置一個具有所需樣式的類,以打開和關閉類。對於javascript idk。你能告訴更多你想做什麼嗎? – 2011-03-27 23:50:11

+0

那麼讓我們說JS被加載到父頁面上,並且加載在子頁面上的div會工作嗎? – 422 2011-03-27 23:56:15

回答

1

你需要插入<style><link><script>標籤在另一個地方,例如用類似的<body><head>或結束:

var script = document.createElement('script'); 
script.type = 'text/javascript'; 
script.src = 'somescript.js'; 
document.getElementsByTagName('head')[0].appendChild(script); 

一個潛在的問題是檢查是否一個文件(CSS或JavaScript)已被插入。您可能需要維護全局列表以檢查文件是否已包含在內。

看看這個來源爲「DOM-based On-Demand JavaScript」。

0

簡單的方法來做到這一點:加載父頁面上的JS和CSS文件。

+0

試過了,它不起作用。不知道爲什麼。也許它的amcharts,或者我們應該看看json。不知道,但它很酷,theres alwas另一種方法.... – 422 2011-03-28 00:27:27