我正在编写一个生成HTML文件的程序。
方式
1。)程序将根据用户的输入来确定要生成的HTML文件类型(HTML,XHTML 1.1,HTML4等)。该程序将使用以下内容:
var html5 = require('text!html/html5.html');
var html4 = require('text!html/html4.html');
var xhtml11 = require('text!html/html11.html');
2.)然后用户将选择库,程序会将这些库附加到所选HTML文件的相应标签上。类似的东西:
-jQuery 1.11.3选择
var jQuery1_11_3 = "<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>"
$('head').append('jQuery1_11_3');
问题:
如何确保“head”是所选HTML页面的标记?而不是DOM的HTML?
我也知道有一种更简洁的方法可以使用jQuery,任何建议吗?
答案 0 :(得分:0)
注意,jQuery()
在<{p>}处调用时未显示.append()
$('head').append('jQuery1_11_3');
处的字符串
var jQuery1_11_3 = "<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>"
似乎有语法错误;双引号内的双引号,没有内部引号被转义?
如何确保'head'是所选HTML页面的标记? 而不是DOM的HTML?
尝试使用document.getElementsByTagName("head")[0]
选择head
元素; document.createElement()
创建script
元素,将script
src
设置为"https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"
,将script
元素追加到head
元素;当script
作为onload
对象的属性加载时,使用jQuery
window
事件来执行操作。
<html>
<head>
</head>
<body>
<script>
var script = document.createElement("script");
script.id = "jquery";
script.onload = function() {
// utilize `setTimeout` here if `jQuery` not defined at `onload` event
// setTimeout(function() {
console.log(window.jQuery("head").find(this).attr("id"))
// }, 1000)
}
script.src = "https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js";
var head = document.getElementsByTagName("head")[0];
head.appendChild(script);
</script>
</body>
</html>