1

只是想知道是否有其他人经历过这种情况或知道我为什么会出错。我在 iframe 中使用 javascript 来调用父 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)”

提前感谢您的任何见解:)

4

3 回答 3

1

我不确定这是否可行,但您可以尝试在父级中设置绑定事件,然后在 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');
});
于 2010-05-26T09:28:26.410 回答
0

您是否已将必要的 jQuery 文件加载到父文档以及 iframe 文档中?

更新:互联网上的一些研究表明“效果”代码可能正在调用“getPropertyValue”,而 Firefox 声称该方法不存在。我知道 - 不是很有帮助。不幸的是,我相信您将不得不调试“效果”代码以更具体地找出这是谁的错误,或者可能会发现它是您尝试运行的 iframe 场景的限制。

于 2010-02-02T05:56:43.883 回答
0

可能是您的 Iframe 规范已定义。因此不允许使用 iframe 进行任何移动/更改?

于 2010-02-02T06:05:13.907 回答