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);