所以我有一种情况,我正在使用Gridster.js,我正在从序列化的JSON对象构建页面,该对象可以包含一个结束脚本标记。我在这里创建了一个JS小提琴
http://jsfiddle.net/bradtaylorsf/Hk357/3/
我尝试使用此方法“Using script tags within script break the script”
"</scr"+"ipt>"
vs
</script>
但这也不起作用。模板呈现但是实际上没有加载twitter小部件。这是完整的代码
var gridster;
$(function(){
gridster = $(".gridster > ul").gridster({
widget_base_dimensions: [350, 215],
widget_margins: [5, 5],
min_cols:2,
resize: {
enabled: false
},
}).data('gridster');
var serialization = [{"col":1,"row":3,"size_x":2,"size_y":1,"html":"\n\t\t\nhello form\n\n\t"},{"id":"widget1","col":1,"row":1,"size_x":1,"size_y":2,"html":"\n\t\t\n<iframe id=\"twitter-widget-0\" scrolling=\"no\" frameborder=\"0\" allowtransparency=\"true\" class=\"twitter-timeline twitter-timeline-rendered\" title=\"Twitter Timeline\" width=\"350\" height=\"400\" style=\"border: none; max-width: 100%; min-width: 180px;\"></iframe>\n<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+\"://platform.twitter.com/widgets.js\";fjs.parentNode.insertBefore(js,fjs);}}(document,\"script\",\"twitter-wjs\");</script>\n\n\t"}];
gridster.remove_all_widgets();
$.each(serialization, function() {
gridster.add_widget('<li>'+this.html+'</li>', this.size_x, this.size_y, this.col, this.row);
});
gridster.disable();
});
答案 0 :(得分:0)
我在JSFiddler上注意到的第一个是你的命名数组中有一个错误的转义码: - 表格\ n \ n \ t&#34;}应该是 - 表格\ n \ n \ t \&#34;}
接下来为什么不做以下事情:
var fileref=document.createElement('script');
fileref.setAttribute("type","text/javascript");
fileref.innerHTML = "// script content";
document.getElementsByTagName("head")[0].appendChild( fileref );
这是一个可以完成所有事情的功能:
http://www.qlambda.com/2012/01/add-script-tags-to-dom-dynamically.html