3

我需要使用 jQuery .load() 函数的 YUI 等效项来加载外部 HTML 模板。我现在使用的 jQuery 代码是 -

$('#templates').load('file1.html');

如何使用 YUI 实现相同的输出?

4

3 回答 3

7

它需要一个特定的子模块node-load,但它是相同的符号。

YUI().use('node', 'node-load', function (Y) {
  Y.one('#templates').load('file1.html');
});

jQuery 和 YUI 中的所有方法都有一个很好的列表:http: //www.jsrosettastone.com/

于 2012-08-08T12:12:34.887 回答
0

不能完全替代$.load(...)但可能会让您朝着正确的方向开始:

加载跨域 HTML 文件的唯一方法是使用跨域 XMLHttpRequest 或 Flash。YUI 3 中的 IO 模块支持这两者,但 YUI 2 中不支持。
来源:http: //yuilibrary.com/forum/viewtopic.php?p=25704&sid= 33da592b2224850ea738e6947d8dc280#p25704

于 2012-08-08T10:59:39.677 回答
0

最后设计了一个加载 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();
  }
}
于 2012-09-06T11:14:51.827 回答