为了将社交图标(Twitter,Linkedin等)的HTML代码写入textarea以便用户可以在其他地方使用该代码,我想获取视图元素的HTML代码,但我是有一些问题。为了更好地说明这一点,以下是创建视图的代码:
define(function(require, exports, module) {
var _ = require('underscore');
var GridControlView = require('pb/views/grid-control');
var SocialiconsControlDialog = require('pb/views/socialicons-control-dialog');
var template = require('text!pb/templates/socialicons-grid-control.html');
var SocialiconsGridControlView = GridControlView.extend({
template: _.template(template)
,templateVars: {
partials: {
facebook: require('text!pb/templates/socialicons-grid-control-facebook.html')
,twitter: require('text!pb/templates/socialicons-grid-control-twitter.html')
,googleplus: require('text!pb/templates/socialicons-grid-control-googleplus.html')
,pinterest: require('text!pb/templates/socialicons-grid-control-pinterest.html')
,linkedin: require('text!pb/templates/socialicons-grid-control-linkedin.html')
}
}
,control_dialog: SocialiconsControlDialog
});
return SocialiconsGridControlView;
});
例如,Linkedin模板如下所示:
<script src="//platform.linkedin.com/in.js?<%- t.cache_buster %>" type="text/javascript">lang: en_US</script>
<script type="IN/Share" data-counter="<%- t.linkedin_option_countmode %>"></script>
我想要检索的是解析后的模板代码为文本,例如:
<script type="text/javascript" src="//platform.linkedin.com/in.js?0.4670609195438331">
<script data-counter="top" type="IN/Share+init">
但是使用如下的东西:
control_view.render().$el.innerHTML;
,control_view.render().$el.html().text()
或control_view.render().$el.html().replace(/<\/?[a-z][a-z0-9]*[^<>]*>/ig, "");
不会返回文字;它返回完整的HTML,并生成一个Linkedin图标(当我只想将文本写入textarea时)。
有什么想法吗?
更新**
我注意到代码control_view.render().$el
在应用程序的其他位置正常工作,并返回HTML代码,但由于某种原因,在这个视图中,我正在尝试它不会。代码似乎打破了:
$control = control_view.render().el;
在控制台中我收到一个错误:
TypeError:t未定义 - underscore-min.js(第3行)