我正在尝试使用jQuery Fancybox在iFrame中打开的页面中调用javascript函数。
$(".testbox").fancybox({
maxWidth : 800,
maxHeight : 600,
fitToView : false,
autoSize : false,
closeClick : false,
openEffect : 'none',
closeEffect : 'none',
afterShow: function() {
//var frameID = $('#fancybox-frame')
//frameID.getParam("test");
}
});
$(".testbox").each(function() {
var element = this;
$(this).fancybox({
'titleFormat' : function() {
var astring = '<span>' + element.id + '</span>';
alert(astring);
}
});
});
HTML:
<a class="testbox fancybox.iframe" href="include/testFrame.html">Iframe</a>
testFrame.html中的函数我试图调用:
function getParam(param) {
alert(param);
}
通常我在不使用Fancybox弹出窗口的情况下调用iFrame中的函数时会这样做:
document.getElementById('myFrame').contentWindow.getParam();
但我不知道在使用Fancybox时如何获取整个iFrame的ID。任何帮助表示赞赏!
修改 我也试过这个代码也没用,我在IE中得到错误:对象不支持这个属性或方法。我确保我正在加载的页面具有函数
var $f = $("#fancybox-frame");
var fd = $f[0].document || $f[0].contentWindow.document;
fd.getparam("test");
答案 0 :(得分:1)
您应该使用:
var $f = $("#fancybox-frame");
$f[0].contentWindow.getParam("test");
原因:
document
对象的方法。getParam
与getparam
不同。