【发布时间】:2013-07-02 07:18:51
【问题描述】:
对于一个项目,我正在动态加载由 html 和 javascript 组成的内容。到目前为止,我使用的是 jquery 1.8.3,但在清理时我想更新到 1.10.1。 我已将问题缩小到我在内容 div 上使用 $.html() 函数的方式。
在 jquery 1.8.3 中:
var content = $("#content");
contentDiv.html("<script> alert('Testing'); </script>")
显示一个带有“测试”内容的警报框,而在较新的 jquery 版本中,相同的代码将字符串插入到 DOM 中,然后警报框也会出现。我希望不显示标签。
上下文 javascript:
this.loadPage = function(page, callback){
$.get(page.ViewFile, function(view){
var content = $("#content");
$("#content").html(view);
}};
正在加载的页面包含,它作为字符串存储在变量视图中。
<h1>New Content</h1>
<div id="newContent"></div>
<script>
function View(){
this.InitializeView = function(model){
//code
}
this.UpdateView = function (model){
//code
}
}
</script>
【问题讨论】:
-
你能在jsfiddle.net上做一个可重现的例子吗?
-
如果你想在服务器上的单独文件上制作模板并在加载后显示它,我建议你使用backbonejs。我看到你有 HTML 和一些要执行的方法。 Backbonejs 正是为这类事情而设计的。
-
@retanik 是您的脚本在单独的文件中吗?
-
带有视图类的 html 和 javascript 在不同的文件中。例如 /index.html?page=Visualization,加载一些数据并最终加载包含新内容和 javascript 的 visualisation.html。奇怪的是,在 1.8.3 中一切正常,更高版本的工作正常,但另外在我的页面中呈现
标签: javascript jquery html dom-manipulation dynamic-loading