下划线不会阻止您使用脚本标签,您的问题来自您的模板声明:您使用type="text/javascript"
这意味着您的浏览器会尝试将您的模板解释为 Javascript,并且您会得到不稳定的结果。
尝试
<script type="text/template" id="someTemplate">
<div><%= text %></div>
<script type="text/javascript"
src="https://www.google.com/recaptcha/api/challengek=<%= key %>"
/>
</script>
和一个演示http://jsfiddle.net/VxjBs/
正如您在评论中指出的那样,Recaptcha 尝试通过加载第二个脚本document.write
并在插入 DOM 时失败(请参阅无法附加 <script> 元素以获得可能的解释)。
您最好的选择可能是通过Recaptcha Ajax API,生成您的 HTML,识别一个节点并Recaptcha.create
在其上应用。就像是
<script type="text/template" id="someTemplate">
<div><%= text %></div>
<div class='recaptcha'></div>
</script>
观点的基础可能是
var html = _.template(src, {
text: 'in div'
});
var $el = $('#render').append(html);
$el.find('.recaptcha').each(function(idx, el) {
Recaptcha.create(
pubkey,
el
);
});
http://jsfiddle.net/nikoshr/VxjBs/2/