【问题标题】:Load partial html with javascript inside用里面的javascript加载部分html
【发布时间】:2013-04-30 13:54:41
【问题描述】:

在我的网站上,我加载了在服务器 (nodejs) 上呈现的 html,并将其插入到正确的位置(大多数情况下是带有 id 内容的 div)。

如何在客户端插入接收到的html,以便执行包含的脚本标签?

我在客户端使用下划线和车把。但是vanillajs当然也是可以的。

PS:这里有一个例子来说明jQuery.html()和设置innerHTML-property的区别:

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

【问题讨论】:

标签: javascript html node.js


【解决方案1】:

您可以利用 jQuery 来做到这一点。 只需要

$.load("#divname").load(url)

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

【讨论】:

  • 它将数据加载到 DIV (innerHTML) 中。这是一种糖
  • 我已经在客户端上有了 html。没有来源所在的网址。我通过 websocket 加载内容。
【解决方案2】:

使用 jQuery

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

没有:

getElementById('content').innerHTML = loaded_html;

虽然可以按照自己的方式进行操作,但更好的主意可能是使用您(可能)在服务器中使用的相同模板在浏览器中发送 json 和呈现页面。我正在使用 doT,我认为它是所有基于 JavaScript 的模板中最好的(如 EJS、下划线)。

【讨论】:

  • 是的,在你回答之前我已经切换到 jquery。它的工作原理实际上不同,因此脚本被执行。 InnerHTML 对我不起作用(Chrome 26)。我接受你的回答。我只在某些情况下渲染 html 服务器端,而不是全部。在我使用的客户端上,具体取决于用例把手。
【解决方案3】:

你的角色转义有问题,请使用jshint。否则使用起来很简单

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-26
    相关资源
    最近更新 更多