【问题标题】:Creating Javascript API like Facebook and Twitter创建像 Facebook 和 Twitter 这样的 Javascript API
【发布时间】:2012-05-27 16:00:33
【问题描述】:

我正在为我的应用程序创建类似于 Facebook 或 Twitter Javascript SDK 工作方式的 javascript API 方法。有人可以就可以帮助我类似地开发 Javascript 方法的资源提供建议。我打算做以下事情:

  • 用户应该能够异步加载 Javascript。
  • 加载 Javascript 后,调用方法在特定元素上加载 iframe。

感谢人们是否可以帮助我实现这一目标?

【问题讨论】:

    标签: javascript facebook api twitter


    【解决方案1】:

    这样做很简单。

    异步加载库很简单,与facebook无关,是javascript的东西,例如使用facebooks的例子:

    (function(d){
        var js, 
            id = "LIB_ID", 
            ref = d.getElementsByTagName('script')[0];
    
        if (d.getElementById(id)) {
            return;
        }
    
        js = d.createElement("script");
        js.id = id;
        js.async = true;
        js.src = "URL_OF_LIB";
        ref.parentNode.insertBefore(js, ref);
    }(document));
    

    这将异步加载您的 js。

    为了能够“通知”库已加载,您可以使用 facebook 使用的方法,即在窗口上定义回调,因此您的库的用户将执行以下操作:

    window.libLoaded = function() {
            // Do what ever when the library is loaded
    }
    

    在您的 lib 代码中,最后只需调用该回调:

    window.libLoaded();
    

    动态创建 iframe 也非常简单:

    function loadFrame(url, domEl) {
            var frame = document.createElement("iframe");
            frame.src = url;
            domEl.appendChild(frame);
    }
    

    但是,您将无法在 iframe 文档和主文档之间进行通信,因为(我假设)它们不会共享同一个域,并且由于相同的来源策略,浏览器会阻止这种情况。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多