代码之家  ›  专栏  ›  技术社区  ›  chillitom Cee McSharpface

javascript/jquery:在另一帧中调用函数

  •  3
  • chillitom Cee McSharpface  · 技术社区  · 16 年前

    我不熟悉dom和javascript,在试图从顶级框架或Firebug的上下文调用框架中定义的函数时遇到了一些问题。

    给定以下框架集:

    <html>
        <body>
        <frameset cols="*" rows="81,*">
            <frame id="topFrame" tabindex="1" name="topFrame" noresize="noresize" scrolling="No" src="hometop.aspx"/> 
            <frameset border="0" cols="214,*" frameborder="no" framespacing="0">
                <frameset border="0" cols="*" frameborder="no" framespacing="0" rows="70,*">
                    <frame tabindex="-1" id="chatFrame" name="chatFrame" scrolling="No" noresize="noresize" src=""/>
                    <frame tabindex="-1" id="leftFrame" name="leftFrame" noresize="noresize" src="leftFrame.aspx"/>
                </frameset> 
                <frame tabindex="-1" id="mainFrame" name="mainFrame" src=""/>
            </frameset> 
            <noframes>Your browser does not support frameset.</noframes> 
        </frameset>
        </body>
    </html>
    

    我正在尝试编写一个javascript钩子,它将调用在中定义的javascript函数。 左撇子 当第一次打开上述文档时。我在Firebug会话中执行此操作 JQuery 加载。

    jquery(“leftframe”)。 返回一个帧dom元素。现在我想执行我的函数( OpenLink ,在框架上下文的leftframe.aspx)中的普通旧脚本标记中定义。我的理解是函数将是 左翼框架 的文档元素。但是我拿不到相框的文件。

    我试过了:

     jQuery("#leftFrame").document
     jQuery("#leftFrame").contentDocument
     jQuery("#leftFrame").find("html")
    

    此外,当在Firebug中检查DOM树时,我看不到 OpenLink 如我所料,在任何DOM节点下运行。

    有人能帮我吗?

    1 回复  |  直到 16 年前
        1
  •  7
  •   meder omuraliev    16 年前
    $('#leftFrame')[0].contentWindow.document
    $('#leftFrame')[0].contentWindow.functionName()
    

    以上应该是可行的。jQuery contents() 只在iframe节点上工作,所以您必须这样引用它。