在我的網站上,我加載了html,它在服務器(nodejs)中呈現,並將它插入到正確的位置(大部分時間是一個帶有id內容的div)。用javascript加載部分html
我該如何在客戶端插入收到的html,以便包含的腳本標籤被執行?
我在客戶端使用下劃線和句柄。但是當然,vanillajs也是可能的。
PS:這裏是顯示jQuery.html()
之間的差別的例子,設置innerHTML
- 特性:
http://jsfiddle.net/waxolunist/VDYgU/3/
在我的網站上,我加載了html,它在服務器(nodejs)中呈現,並將它插入到正確的位置(大部分時間是一個帶有id內容的div)。用javascript加載部分html
我該如何在客戶端插入收到的html,以便包含的腳本標籤被執行?
我在客戶端使用下劃線和句柄。但是當然,vanillajs也是可能的。
PS:這裏是顯示jQuery.html()
之間的差別的例子,設置innerHTML
- 特性:
http://jsfiddle.net/waxolunist/VDYgU/3/
與jQuery
$('div#content').html(loaded_html);
無:
getElementById('content').innerHTML = loaded_html;
雖然可能按照你的方式來做,一個更好的主意可能是發送json和渲染pag es在瀏覽器中使用您(可能)在服務器中使用的相同模板。我正在使用doT,我認爲它是所有基於JavaScript的模板(如EJS,下劃線)中最好的。
是的,我已經回答了jquery,然後再回答您的問題。它的工作原理不同,所以腳本得到執行。 InnerHTML不適用於我(Chrome 26)。儘管我接受你的回答。我只在某些情況下不提供html服務器端。在我使用的客戶端上,取決於用例句柄。 – Christian 2013-05-10 15:15:50
您的角色轉義存在一些問題,請使用jshint
。否則,它是非常簡單的使用像
var script1 = "content for jQuery";
var script2 = "content for javascript";
$(document).ready(function(){
$('#content1').html(script1);
document.getElementById('content2').innerHTML = script2;
})
你可以參考http://stackoverflow.com/questions/8825804/nodejs-ejs-partials-with-scripts-in-the-head和res.Render在HTTP ://expressjs.com/api.html#req.xhr – DeveloperBuddy 2013-05-06 18:45:28
你能詳細說明一下嗎?我不明白。 – Christian 2013-05-06 18:52:22
您可以使用回調響應呈現html。 res.render('sometemplate',{layout:false}); – DeveloperBuddy 2013-05-06 19:06:29