2013-01-08 71 views
0

可能重複:
Jquery load with script tags不能呼應的JavaScript調用

在PHP頁面我試圖插入使用jquery有一個onclick呼叫到一個DIV部分內容稱爲「內容」。

<div id="content" class="content"></div> 

的jQuery我打電話的版本是:

//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js 

當鏈接被點擊它調用下面的JavaScript:

function loadA(a_variable) { 
    $("#content").load("build.php?variable=" + a_variable); 
} 

的build.php頁面做了一些的東西,並試圖包括一些文字插入javascript:

echo "Lorem ipsum dolor sit amet, consectetuer adipiscing elit"; 

echo "<script type='text/javascript' src='script_name.js'></script>"; 

echo "Lorem ipsum dolor sit amet, consectetuer adipiscing elit"; 

除腳本之外的所有東西都會被刪除,並且不會顯示在我的客戶端中。任何想法爲什麼會發生這種情況,以及它如何解決?

+0

你確定腳本實際上不執行?標記可能會被刪除,但js *應該*仍然執行http://api.jquery.com/load/使用螢火蟲等來查看瀏覽器是否正在請求/script_name.js – geedubb

+0

添加警報(「來自添加的腳本」) ;在你的script_name.js中並檢查是否在加載時執行 –

+0

爲什麼不嘗試使用'getScript()'函數。 – Jai

回答

1

jQuery實際上並不追加<script>元素的DOM。相反,它只是演示腳本的內容。由於它不是在DOM,所以你不能找到它,儘管你可以或檢查你的php echo'ed內容不包含腳本標籤的不通過檢查.load等獲得的內容:

$("#content").load("build.php?variable=" + a_variable, function(data) { 
    console.log(data); // check if you see script in the content or not 
}); 
0

嘗試HTML標記添加到您的PHP例如:

echo "<html><body>data.<script></script>...</body></html>" 

使用任何網絡嗅探器(如螢火蟲,或者如果您使用Chrome的開發者控制檯的網絡選項卡),看看你會得到什麼從PHP,也許有一個404錯誤在您的網頁)

+0

這將在DOM中創建嵌套的''和''元素,是否有效?除非jQuery足夠聰明才能將其過濾出來,在這種情況下,它們不是必需的。 – Barmar