我正在为我的应用程序创建类似于 Facebook 或 Twitter Javascript SDK 工作方式的 javascript API 方法。有人可以就可以帮助我类似地开发 Javascript 方法的资源提供建议。我打算做以下事情:
- 用户应该能够异步加载 Javascript。
- 加载 Javascript 后,调用一个方法在特定元素上加载 iframe。
感谢人们是否可以帮助我实现这一目标?
我正在为我的应用程序创建类似于 Facebook 或 Twitter Javascript SDK 工作方式的 javascript API 方法。有人可以就可以帮助我类似地开发 Javascript 方法的资源提供建议。我打算做以下事情:
感谢人们是否可以帮助我实现这一目标?
做这样的事情很简单。
异步加载库很容易,与 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 文档和主文档之间进行通信,因为(我假设)它们不会共享相同的域,并且由于相同的来源策略,浏览器会阻止这种情况。