我需要使用 jQuery .load() 函数的 YUI 等效项来加载外部 HTML 模板。我现在使用的 jQuery 代码是 -
$('#templates').load('file1.html');
如何使用 YUI 实现相同的输出?
它需要一个特定的子模块node-load
,但它是相同的符号。
YUI().use('node', 'node-load', function (Y) {
Y.one('#templates').load('file1.html');
});
jQuery 和 YUI 中的所有方法都有一个很好的列表:http: //www.jsrosettastone.com/
不能完全替代$.load(...)
但可能会让您朝着正确的方向开始:
加载跨域 HTML 文件的唯一方法是使用跨域 XMLHttpRequest 或 Flash。YUI 3 中的 IO 模块支持这两者,但 YUI 2 中不支持。
来源:http: //yuilibrary.com/forum/viewtopic.php?p=25704&sid= 33da592b2224850ea738e6947d8dc280#p25704
最后设计了一个加载 HTML 的解决方案。我已经处理了 IE 和 NON-IE 浏览器的案例。是这样的——
函数 fName() {
if(navigator.appName == "Microsoft Internet Explorer") {
var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlHttp.open( "GET", "templates.html", true );
xmlHttp.onreadystatechange = function() {
if( xmlHttp.readyState == 4 && ( xmlHttp.status == 0 || xmlHttp.status == 200 ) )
{
document.getElementById( "div_id_here" ).innerHTML = '"' + xmlHttp.responseText + '"';
}
};
xmlHttp.send();
}
else {
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", "templates.html", true);
xmlHttp.onreadystatechange = function()
{
if(xmlHttp.readyState == 4 && (xmlHttp.status == 0 || xmlHttp.status == 200))
{
document.getElementById("div_id_here").innerHTML = xmlHttp.responseText;
}
};
xmlHttp.send();
}
}