gpt4 book ai didi

javascript - 在使用 Fancybox 弹出窗口打开的 iFrame 中调用 javascript 函数

转载 作者:行者123 更新时间:2023-12-01 04:23:47 28 4
gpt4 key购买 nike

我正在尝试使用 jQuery Fancybox 在 iF​​rame 中打开的页面中调用 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");

最佳答案

您应该使用:

var $f = $("#fancybox-frame");
$f[0].contentWindow.getParam("test");

原因:

  • 该方法是全局声明的,而不是作为 document 对象的方法。
  • JavaScript 区分大小写; getParamgetparam 不同。

关于javascript - 在使用 Fancybox 弹出窗口打开的 iFrame 中调用 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8222272/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com