2010-02-02 3 views
1

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

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

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

uncaught exception: [Exception... "Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDOMCSSStyleDeclaration.getPropertyValue]" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)"

Заранее спасибо за любую проницательность :)

+0

была аналогичная проблема с свяжете на события от фрейма к родителю, но это было с Google Maps. для меня он работал в других браузерах и даже все еще работал в ff, но бросил ошибку. я просто использовал try/catch, на самом деле не решает проблему, но позвольте мне перейти дальше: – chrismarx

ответ

0

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

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

+0

yes :) это было первое, что я проверил. У меня есть jquery 1.3.2 и effects.core.js и effects.shake.js, загруженные с iframe и снаружи. –

0

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

+0

Ну .. Хотя это и делает какой-то смысл, я не думаю, что это так .. потому что у меня есть div, содержащий iframe, и что div имеет применимую функциональность ui draggable. Я могу без проблем перетаскивать iframe. Разница здесь заключается в том, что я устанавливаю draggable в файле javascript за пределами iframe. Я также могу поколебать iframe снаружи, но не изнутри. –

+0

Как насчет ссылки на файл JS. Поскольку Iframe больше не «предположительно» в том же самом месте, если у вас есть подпапки. Поэтому может быть ссылка на страницу Iframe, как если бы она была на странице, которую вы использовали. В настоящее время я пытаюсь решить проблему с конвертированием на страницы PHP и т. Д. – Sphvn

1

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

Родитель JavaScript

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

JavaScript плавающего фрейма

$(document).ready(function(){ 
    $(parent.document).find('#iframe').trigger('shakeFrame'); 
});