001.iframe父子兄弟之间调用传值

2017-04-01  本文已影响0人  胖先森

今天做一个后台模版的时候,弹出框关闭之后,需要刷新页面!
在主页面中包含IFrame,多的不爱说了!就先这样吧!!!
感觉没有意思!
contentWindow && parent

iframe的调用包括以下几个方面:(调用包含html dom,js全局变量,js方法)

主要知识点

源码

源码包含内容,主页面(main.html)中含有两个iframe子页面(frame.html,newIframe.html)

main.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>IFrame的数据传递</title>
</head>
<body>
<p>
    <a href="javascript:void(0)" onClick="sendParameter();">参数传递</a>
</p>
<p>
    <a href="javascript:void(0)" onClick="callIframeMethod();">调用子iframe方法</a>
</p>
<p>
    <a href="javascript:void(0)" onClick="callIframeField();">调用子iframe变量</a>
</p>
<p>
    <a href="javascript:void(0)" onClick="callIframeHtml();">调用子iframe组件</a></br>
</p>


<iframe id="hanpang" src="myFrame.html" width="100%" frameborder="1"></iframe>
<iframe id="new" src="newFrame.html" width="100%" frameborder="1"></iframe>


<script type="text/javascript" src="../jquery-1.8.3.js"></script>
<script type="text/javascript">

    var parentVal = "我是父页面定义的变量";

    function sendParameter(){
        //myValue 是传递的变量
        $("#hanpang")[0].contentWindow.myValue="我是胖先森";
    }
    
    function callIframeMethod() {
        //document.getElementById("hanpang").contentWindow.myTest();
        $("#hanpang")[0].contentWindow.myTest(); //用jquery调用需要加一个[0]
    }
    
    function callIframeField() {
        alert($("#hanpang")[0].contentWindow.message);
    }
    
    function callIframeHtml() {
        // #name 是 myFrame页面中控件ID
        alert($("#hanpang")[0].contentWindow.$("#name").val());
        //alert($("#hanpang")[0].contentWindow.document.getElementById("dd").value);
        //alert($("#hanpang")[0].contentWindow.document.getElementById("dd").value);
        
    }
    
    function say() {
        alert("我是main.html提供的方法");
    }

</script>

</body>
</html>

myFrame.html

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>子页面</title>
    </head>
    <body>
        <a href="javascript:;" onclick="getParamter()">接受参数</a>
        <a href="javascript:;" onClick="callMainMethod();">调用主窗口方法</a>
        <a href="javascript:;" onClick="callMainField();">调用主窗口变量</a>
        <a href="javascript:;" onClick="callMainHtml();">调用主窗口组件</a>
        <input id="name" type="text" value="我要学习"/>

        <script type="text/javascript" src="../jquery-1.8.3.js"></script>
        <script type="text/javascript">
            var message = "消息:打赏啊!";
            function getParamter() {
                alert(window.myValue);
            }
            
            function callMainMethod() {
                parent.say();
            }

            function callMainField() {
                alert(parent.parentVal);
            }
            
            function callMainHtml() {
                alert(parent.$("#hanpang").attr("id"));
            }

            function myTest() {
                alert($("#name").val());
            }
        </script>
    </body>
</html>

newFrame.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <a href="javascript:;" onClick="callLevelFrame();">调用兄弟iframe</a>
    <input id="new_iframe" type="text" value="我的新值"/>

    <script type="text/javascript" src="../jquery-1.8.3.js"></script>
    <script type="text/javascript">
        function callLevelFrame() {
            var message=parent.$("#hanpang")[0].contentWindow.message;
            alert(message);
        }

    </script>
</body>
</html>
上一篇 下一篇

猜你喜欢

热点阅读