Вызов функции javascript в iFrame, открытой с помощью всплывающего окна Fancybox - PullRequest
1 голос
/ 22 ноября 2011

Я пытаюсь вызвать функцию javascript на странице, открытой в iFrame с помощью jQuery Fancybox.

            $(".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);               
        }

Обычно я делаю это, когдавызов функций в iFrame без использования всплывающего окна Fancybox:

        document.getElementById('myFrame').contentWindow.getParam();

, но я не знаю, как получить идентификатор всего iFrame при использовании Fancybox.Любая помощь приветствуется!

Редактировать: Я также пробовал этот код, который также не работал, я получаю ошибку в IE: объект не поддерживает это свойство или метод.Я убедился, что загружаемая страница имеет функцию

    var $f = $("#fancybox-frame");
    var fd = $f[0].document || $f[0].contentWindow.document; 
    fd.getparam("test");  

1 Ответ

1 голос
/ 22 ноября 2011

Вы должны использовать:

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

Причины:

  • Метод объявлен глобально, а не как метод объекта document.
  • JavaScript чувствителен к регистру;getParam отличается от getparam.
...