Влияние jQuery на родительский документ iframe - PullRequest
1 голос
/ 02 февраля 2010

Просто интересно, сталкивался ли кто-то еще с этим или знает, почему я получаю ошибку. Я использую javascript из iframe для вызова родительского элемента dom, а затем использую ядро ​​эффектов jQuery UI, чтобы встряхнуть его. Вот пример:

$(document).ready(function(){
    if ($("form").length>0)
    {
        $("form").submit(function(){
            var oParentDoc = $(parent.document).find("div#element");
            var action = $(this).attr("action");
            var postdata = $(this).serialize();
            $(oParentDoc).addClass("loading");
            $.post(action,postdata,function(data){
                $(oParentDoc).removeClass("loading").effect("shake",{"times":3,"distance":10},60);
            });
            return false;
        });
    }
});

Он работает без эффекта, но когда я использую эффект, он дает мне эту ошибку:

необученное исключение: [Исключение ... «Компонент вернул код ошибки: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [NsIDOMCSSStyleDeclaration.getPropertyValue]» nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE) "

Заранее благодарим за понимание:)

Ответы [ 3 ]

1 голос
/ 26 мая 2010

Я не уверен, что это сработает, но вы можете попробовать настроить событие связывания в родительском элементе, а затем в iFrame попытаться вызвать это событие в родительском элементе.

Родительский JavaScript

$(document).ready(function(){
    $('#iframe').bind('shakeFrame',function(){
        $('#iframe').effect("shake",{"times":3,"distance":10},60);
    });
});

iFrame JavaScript

$(document).ready(function(){
    $(parent.document).find('#iframe').trigger('shakeFrame');
});
0 голосов
/ 02 февраля 2010

Возможно, спецификации вашего Iframe определены. Поэтому не разрешать никакое движение / изменение с помощью Iframe?

0 голосов
/ 02 февраля 2010

Вы загрузили необходимые файлы jQuery в родительский документ, а также в документ iframe?

ОБНОВЛЕНИЕ: небольшое исследование в Интернете показывает, что код 'эффекта', вероятно, вызывает 'getPropertyValue', а Firefox утверждает, что метод не существует. Я знаю - не очень полезно. К сожалению, я полагаю, что вам придется отлаживать код «эффекта», чтобы более точно определить, чья это ошибка, или, возможно, обнаружить, что это ограничение сценария iframe, который вы пытаетесь запустить.

...