关于jquery和iframe的一些更正?
我创建了一个简单的greasemonkey脚本,它在页面上附加了一个新菜单,当单击它时,它将显示iframe,我想确保当我单击菜单时iframe已经完全加载,所以我创建了这个关于jquery和iframe的一些更正?,jquery,iframe,greasemonkey,Jquery,Iframe,Greasemonkey,我创建了一个简单的greasemonkey脚本,它在页面上附加了一个新菜单,当单击它时,它将显示iframe,我想确保当我单击菜单时iframe已经完全加载,所以我创建了这个 $('<div id="googleBar"><iframe id="googleBarFrame" scrolling="no" frameborder="0" src="http://support.google.com/plus/bin/answer.py?hl=en&answer=
$('<div id="googleBar"><iframe id="googleBarFrame" scrolling="no" frameborder="0" src="http://support.google.com/plus/bin/answer.py?hl=en&answer=1053549"></iframe></div>').insertBefore('#pagelet_welcome_box');
$('#googleBarFrame').load(function()
{
$('#pageNav').prepend('<li id="navShare" class="topNavLink middleLink"><a accesskey="1" >Google+ Share</a></li>');
});
//This not working
var toggle = false;
$('#navShare').click(function() {
if (toggle) {
$("#googleBar").animate({
height: '30px',
}, 500 );
toggle = false;
}
else {
$("#googleBar").animate({
height: '250px',
}, 500 );
toggle = true;
}
});
但这不起作用,这是我的工作脚本,但无法检测iframe已加载
$('#pageNav').prepend('<li id="navShare" class="topNavLink middleLink"><a accesskey="1" >Google+ Share</a></li>');
$('<div id="googleBar"><iframe id="googleBarFrame" scrolling="no" frameborder="0" src="http://support.google.com/plus/bin/answer.py"></iframe></div>').insertBefore('#pagelet_welcome_box');
var toggle = false;
$('#navShare').click(function() {
if (toggle) {
$("#googleBar").animate({
height: '30px',
}, 500 );
toggle = false;
}
else {
$("#googleBar").animate({
height: '250px',
}, 500 );
toggle = true;
}
});
嗯。。。greasemonkey中的事件处理并不容易。如果要将回调绑定到iframe的加载事件,应该尝试类似的方法
function callback() {
$('#pageNav').prepend('<li id="navShare" class="topNavLink middleLink"><a accesskey="1" >Google+ Share</a></li>');
}
document.getElementById('googleBarFrame').addEventListener('load', callback, false);
我没有测试它,所以可能因为一些愚蠢的事情而无法工作,例如,我不确定在addEventListener中传递的事件名称是'load'还是'onload'
此方法addEventListener适用于我在greasemonkey中的click事件,因此它也可能适用于load事件。感谢您的回答,我尝试了这两种方法….addEventListener'load',。。。和…添加了“onload”,。。。而且两个都不起作用。。。确保在DOM中创建googleBarFrame之后和加载之前调用addEventListener