【发布时间】:2015-12-17 09:24:42
【问题描述】:
我目前正在加载这样的模板:
$('#mydiv').load("template1.html")
我目前正在使用 jQuery,但是如何在纯 Javascript 中做同样的事情?
【问题讨论】:
-
你可以查看 jQuery 源代码 .. letmegooglethatforyou
标签: javascript jquery
我目前正在加载这样的模板:
$('#mydiv').load("template1.html")
我目前正在使用 jQuery,但是如何在纯 Javascript 中做同样的事情?
【问题讨论】:
标签: javascript jquery
通过使用纯javascript ajax 并在onreadychange() 事件中将mydiv 的innerHTML 属性设置为ajax 响应的内容
function loadHTML(myDivId, url) {
var xmlhttp;
if (window.XMLHttpRequest)
{
xmlhttp = new XMLHttpRequest();
}
else
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == XMLHttpRequest.DONE )
{
if(xmlhttp.status == 200){
document.getElementById(myDivId).innerHTML = xmlhttp.responseText;
var allScripts = document.getElementById(myDivId).getElementsByTagName('script');
for (var n = 0; n < allScripts .length; n++)
{
eval(allScripts [n].innerHTML)//run script inside div generally not a good idea but these scripts are anyways intended to be executed.
}
}
else {
alert('Error');
}
}
}
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
loadHTML( "mydiv", "template1.html" );
【讨论】:
load 实际执行添加到 DOM 的脚本块
innerHTML 规范的一部分,这就是 jQuery 自己做的原因