1

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

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

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

4

1 回答 1

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 正在使用的方法,该方法是在窗口上定义回调,因此您的 lib 用户将执行以下操作:

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 文档和主文档之间进行通信,因为(我假设)它们不会共享相同的域,并且由于相同的来源策略,浏览器会阻止这种情况。

于 2012-05-21T06:57:23.520 回答