Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/198.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Fancybox加载异步_Javascript_Asynchronous_Fancybox - Fatal编程技术网

Javascript 使用Fancybox加载异步

Javascript 使用Fancybox加载异步,javascript,asynchronous,fancybox,Javascript,Asynchronous,Fancybox,我正在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.getElementsBy

我正在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()">
在执行myLoad()之后,控制台在fancybox插件调用中显示“UncaughtTypeError:undefined不是函数”


有什么想法吗?

你是说调用
fancybox()已执行,内部存在问题。比此功能更有用;-)


或者你的意思是,
$(“#myDiv”)
是个问题,因为为什么它应该有一个函数
fancybox()
。很难猜测,因为您提供的信息很少。

将我的评论转化为答案,因为它解决了您的问题:

在尝试使用脚本之前,必须“等待”脚本完成加载。加载异步的东西意味着它将在后台加载,稍后完成加载,而加载过程中的其他事情将继续

如果jQuery已经可用,可以使用
$.getScript()
并使用成功处理程序回调函数来知道它何时完成加载

$.getScript(yourFancyBoxCodeURLHere, function() {
    $("#myDiv").fancyBox();
});

在尝试使用脚本之前,必须“等待”脚本完成加载。加载异步的东西意味着它将在后台加载,稍后完成加载,而加载过程中的其他事情将继续。如果jQuery已经可用,可以使用
$.getScript()
并使用成功处理程序回调函数来知道它何时完成加载。Thnaks$.getScript可以工作
$.getScript(yourFancyBoxCodeURLHere, function() {
    $("#myDiv").fancyBox();
});