如果正文中有标记script
,我希望将<script>
添加到头部,我尝试如下但不起作用,怎么办呢?
DEMO: http://jsfiddle.net/rYXJx/
JS:
var TAREA = $('body').find('textarea').length;
if(TAREA > 0){
$('head').append('<script type="text/javascript" src="files/js/nicEdit.js"></script><script type="text/javascript">bkLib.onDomLoaded(function() { nicEditors.allTextAreas() });</script>');
};
答案 0 :(得分:4)
您可以使用jquery getScript函数:
http://api.jquery.com/jQuery.getScript/
所以正确的代码如下所示:
$.getScript('files/js/niceEdit.js');
答案 1 :(得分:2)
您的脚本中的一个问题是字符串文字中的</script>
实际上会破坏外部<script>
标记。您可能会注意到页面中的这些字符似乎无处不在:
“);};
其次,虽然仍然可以在头部注入<script>
标签,但是没有直接/简单/跨浏览器的方式来了解脚本何时完成加载。并且在完全加载之前不能使用脚本。
最佳解决方案是使用提供回调的jQuery.getScript()
。使用回调来调用nicEditors.allTextAreas()
函数:
$(document).ready(function () {
if ($("textarea").length > 0) {
$.getScript("files/js/nicEdit.js", function () {
// no need for onDomLoaded -- DOM is loaded at this point!
nicEditors.allTextAreas();
});
}
});