代码之家  ›  专栏  ›  技术社区  ›  Justin Bull

jquery对iframe父文档的影响

  •  1
  • Justin Bull  · 技术社区  · 16 年前

    只是想知道是否有其他人经历过这种情况,或者知道为什么我会犯错误。我在iframe中使用javascript来调用父dom元素,然后使用jquery ui的effect core来改变它。下面是一个例子:

    $(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_不可用) [nsidomcssstyledeclaration.getpropertyvalue]“ nsresult:“0x80040111 (ns_error_not_available)“

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

    3 回复  |  直到 14 年前
        1
  •  1
  •   Nalum    16 年前

    我不确定这是否有效,但您可以尝试在父对象中设置绑定事件,然后在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');
    });
    
        2
  •  0
  •   Sphvn Frebin Francis    16 年前

    可能是iframe的规范已经定义好了。因此不允许与iframe发生任何移动/更改?

        3
  •  0
  •   Bruce    16 年前

    是否已将必需的jquery文件加载到父文档以及iframe文档中?

    更新:在互联网上的一点研究表明“effect”代码可能正在调用“getpropertyvalue”,而firefox声称该方法不存在。我知道-不是很有帮助。不幸的是,我相信您必须调试“effect”代码才能更具体地找出这是谁的bug,或者可能会发现这是您试图运行的iframe场景的一个限制。