我在onload函数中加载Fancybox lib async:
function myLoad(){
var s = document.createElement('script');
s.type = 'text/javascript';
s.async = true;
s.src = 'miurl.com';
var x = document.getElementsByTagName('script')[document.getElementsByTagName('script').length - 1];
x.parentNode.insertBefore(s, x);
}
<body onload="myLoad()">
脚本添加到我的头脑中,但是当我尝试:
$("#myDiv").fancybox();
执行myLoad()后,控制台在fancybox插件调用中显示“Uncaught TypeError:undefined is not function”。
有什么想法吗?
答案 0 :(得分:0)
你的意思是执行调用fancybox();
而内部是一个问题。比这个功能更有帮助; - )
或者你的意思是$("#myDiv")
是问题所在,因为它为什么要有一个函数fancybox()
。很难猜到,你给我们的信息很少。
答案 1 :(得分:0)
将评论转为答案,因为它解决了您的问题:
在尝试使用脚本之前,您必须“等待”脚本完成加载。加载异步意味着它将在后台加载并在稍后完成加载,而加载过程中的其他内容将继续。
如果您已经有jQuery可用,则可以使用$.getScript()
并使用成功处理程序回调函数来了解它何时完成加载。
$.getScript(yourFancyBoxCodeURLHere, function() {
$("#myDiv").fancyBox();
});