在iframe中调用JavaScript函数

我在iframe从父页面调用JavaScript函数时遇到问题。这是我的两页:


mainPage.html


<html>

<head>

    <title>MainPage</title>

    <script type="text/javascript">

        function Reset() 

        {

            if (document.all.resultFrame)

                alert("resultFrame found");

            else

                alert("resultFrame NOT found");


            if (typeof (document.all.resultFrame.Reset) == "function")

                document.all.resultFrame.Reset();

            else

                alert("resultFrame.Reset NOT found");

        }

    </script>

</head>

<body>

    MainPage<br>

    <input type="button" onclick="Reset()" value="Reset"><br><br>

    <iframe height="100" id="resultFrame" src="resultFrame.html"></iframe>

</body>

</html>

resultFrame.html


<html>

<head>

    <title>ResultPage</title>

    <script type="text/javascript">

        function Reset() 

        {

            alert("reset (in resultframe)");

        }

    </script>

</head>

<body>

    ResultPage

</body>

</html>

(我知道document.all不建议这样做,但只能在内部使用IE浏览此页面,我不认为这是问题所在)


当我按下“重置”按钮时,我得到“找到resultFrame”和“找不到resultFrame.Reset”。似乎有对框架的引用,但是无法在框架上调用函数,为什么呢?


白猪掌柜的
浏览 573回答 3
3回答

慕码人2483693

采用:document.getElementById("resultFrame").contentWindow.Reset();访问iframe中的重置功能document.getElementById("resultFrame") 将在您的代码中获取iframe,并在iframe中contentWindow获取window对象。拥有子窗口后,您可以在该上下文中引用javascript。

ABOUTYOU

为了更强大:function getIframeWindow(iframe_object) {&nbsp; var doc;&nbsp; if (iframe_object.contentWindow) {&nbsp; &nbsp; return iframe_object.contentWindow;&nbsp; }&nbsp; if (iframe_object.window) {&nbsp; &nbsp; return iframe_object.window;&nbsp; }&nbsp;&nbsp; if (!doc && iframe_object.contentDocument) {&nbsp; &nbsp; doc = iframe_object.contentDocument;&nbsp; }&nbsp;&nbsp; if (!doc && iframe_object.document) {&nbsp; &nbsp; doc = iframe_object.document;&nbsp; }&nbsp; if (doc && doc.defaultView) {&nbsp; &nbsp;return doc.defaultView;&nbsp; }&nbsp; if (doc && doc.parentWindow) {&nbsp; &nbsp; return doc.parentWindow;&nbsp; }&nbsp; return undefined;}和...var el = document.getElementById('targetFrame');var frame_win = getIframeWindow(el);if (frame_win) {&nbsp; frame_win.reset();&nbsp; ...}...
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript