Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.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 加载嵌入式Google日历时的回调_Javascript_Jquery_Callback_Google Calendar Api_Onload - Fatal编程技术网

Javascript 加载嵌入式Google日历时的回调

Javascript 加载嵌入式Google日历时的回调,javascript,jquery,callback,google-calendar-api,onload,Javascript,Jquery,Callback,Google Calendar Api,Onload,我正在以标准方式加载嵌入式谷歌日历: <iframe id="calendar" src="https://www.google.com/calendar/embed...></iframe> 我大概需要使用一个区间循环: var interval_calendar = setInterval(function(){ if ($('#calendar').SOMETHING) { clearInterval(interval_calendar);

我正在以标准方式加载嵌入式谷歌日历:

<iframe id="calendar" src="https://www.google.com/calendar/embed...></iframe>
我大概需要使用一个区间循环:

var interval_calendar = setInterval(function(){
    if ($('#calendar').SOMETHING) {
        clearInterval(interval_calendar);
        $('iframe#calendar').contents().find('.blahblah').css("display", "none");
    }
} ,200);
如何检查日历是否已加载?基本上,我需要
一些东西


谢谢。

当您的iframe加载完成后,您可以使用
load
执行一个函数

$("#calendar").load( function () {
    // do something once the iframe is loaded
});
试一试

var iframe=$(“”{
“id”:“日历”,
“src”:https://www.google.com/calendar/embed...",
“目标”:“顶部”
})
//`iframe``load``事件`
.开启(“加载”,功能(e){
美元(e.target)
.contents()
.find(“.blablah”)
.css(“显示”、“无”);
返回错误
});
//$(元素)。追加($(iframe))

JSFIDLE

我找不到任何好的JavaScript事件解决方案,但您可以使用您的想法:

var interval_calendar = setInterval(function(){
    if ($('#calendarTitle').html()!= "") {
        clearInterval(interval_calendar);
        alert();
    }
} ,200);
只有在加载整个日历时,
calendarTitle
id才会显示在页面上

另一方面,我不知道您是否可以访问日历属性,因为它们受到保护。您只能访问从主机加载的iframe内容。带有
警报()
它可以工作,但如果您尝试访问任何内部内容,您将在控制台中收到一条
SecurityError
消息

        var iframe = $("<iframe>", {
                "id" : "calendar",
                "src" : "https://www.google.com/calendar/embed...",
                "target" : "_top"
        })
        // `iframe` `load` `event`
        .on("load", function (e) {
            $(e.target)
            .contents()
            .find(".blablah")
            .css("display", "none");
            return false
        });
        // $(element).append($(iframe))
var interval_calendar = setInterval(function(){
    if ($('#calendarTitle').html()!= "") {
        clearInterval(interval_calendar);
        alert();
    }
} ,200);