2013-05-06 8 views
4

На моем веб-сайте загружаю html, который отображается на сервере (nodejs), и вставляем его в нужное положение (чаще всего с содержимым div с идентификатором).Загрузите частичный html с javascript внутри

Как бы вставить полученный html на клиент, чтобы выполнялись теги с включенным скриптом?

Я использую на стороне клиента подчеркивания и руля. Но ванильяс также возможен, конечно.

PS: Вот пример, чтобы показать разницу между jQuery.html() и установив innerHTML -property:

http://jsfiddle.net/waxolunist/VDYgU/3/

+0

Вы можете обратиться http://stackoverflow.com/questions/8825804/nodejs-ejs-partials-with-scripts-in-the-head и res.Render в HTTP : //expressjs.com/api.html#req.xhr – DeveloperBuddy

+0

Не могли бы вы рассказать об этом. Я не понимаю. – Christian

+0

Вы можете отобразить html с ответом обратного вызова. res.render ('sometemplate', {layout: false}); – DeveloperBuddy

ответ

3

с JQuery

$('div#content').html(loaded_html); 

без:.

getElementById('content').innerHTML = loaded_html; 

Хотя возможно чтобы сделать это по-своему, лучшая идея может заключаться в том, чтобы отправить json и сделать pag es в браузере, используя те же шаблоны, которые вы (возможно) используете на сервере. Я использую doT, который я считаю лучшим из всех шаблонов на основе JavaScript (например, EJS, подчеркивание).

+0

Да, я уже помахал jQuery перед вашим ответом. Он работает совсем по-другому, поэтому скрипт выполняется. InnerHTML не работает для меня (Chrome 26). Однако я принимаю ваш ответ. Я обрабатываю html-серверы только в некоторых случаях не во всех. На клиенте, который я использую, в зависимости от дескрипторов использования. – Christian

0

Вы можете использовать JQuery, чтобы сделать это. Просто с

$ .load ("# divname") нагрузка (URL)

http://api.jquery.com/load/

+0

У меня уже есть html. Как вставить html? – Christian

+0

Он загружает данные в DIV (innerHTML). Это своего рода сахар –

+0

У меня уже есть клиент html. Нет URL-адреса, где находится источник. Я загружаю контент через websocket. – Christian

0

У вас возникли проблемы с побегом персонажа, пожалуйста, используйте jshint. В противном случае это очень простой в использовании, как

var script1 = "content for jQuery"; 
var script2 = "content for javascript"; 

$(document).ready(function(){ 
    $('#content1').html(script1); 
    document.getElementById('content2').innerHTML = script2; 
})