iframeドメイン間

45547 ワード

ajax非同期転送ではドメイン間でデータを取得できません!
この時はどうしますか?
iframeで複数のドメインのページをつなぎ合わせることができ、各ドメインのページは自分のデータコンテンツを非同期で操作することができ、ドメイン間操作の効果を実現します.
次は私がやった例です.
iframeホームフェースコード、
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<title>      </title>
<link rel="stylesheet" type="text/css" href="/css/default/softdown.css" />
</head>
<body>
    <div class="wrap">
    <div class="title"><span>      </span></div>
    </div>
    <iframe src="http://test.ureading.com/ipa/ipa.html" frameborder=0 scrolling=no width="99%" height="480"></iframe> <iframe src="http://out.ureading.com/ipa/ipa.html" frameborder=0 scrolling=no width="99%" height="480"></iframe>
</body>
</html>

このコードは、2つのドメインのipaをhtmlファイルが統合され、
各ipa.htmlファイルは、自分のドメイン内のコンテンツを操作できます.独自のデータを非同期で操作します.
次にipaを見てみましょう.htmlの内容!
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<title>      </title>
<link rel="stylesheet" type="text/css" href="/css/default/softdown.css" />
<script src="/js/class/jquery-1.3.2.min.js" type="text/javascript"></script>
<script>
    $(document).ready(function(){
        //          
        $.ajax({
            type: "POST",
            url:"/default/index/ajaxcheckedlessons",
            data:"",
            success:function(response){
                if(response){
                    var data = eval('('+response+')');
                    //alert(data);
                    if(data['8yuwen']){
                      $("#8yuwen").attr("style","color:red;");
                    }else{
                      $("#8yuwen").attr("style","");  
                    }
                    if(data['8wuli']){
                      $("#8wuli").attr("style","color:red;");
                    }else{
                      $("#8wuli").attr("style","");  
                    }
                    if(data['9yuwen']){
                      $("#9yuwen").attr("style","color:red;");
                    }else{
                      $("#9yuwen").attr("style","");  
                    }
                    if(data['9wuli']){
                      $("#9wuli").attr("style","color:red;");
                    }else{
                      $("#9wuli").attr("style","");  
                    }
                }else{
                    alert("error");
                }
            }
        });    


        //ajax      
        $(".sellessons").click(function(){
            var todo = $(this).attr("todo");
            var class_id = $(this).attr("class_id");
            ajaxsellessons(todo,class_id);
            $(this).find('p').css('color', 'red');
            $(this).parent().siblings().find('p').css('color','black');
            //      
            if(todo=='selyuwen'){
                todo='selwuli';
            }else{
                todo='selyuwen';
            }
            if(class_id==2){
                class_id=3;
            }else{
                class_id=2;
            }
            ajaxsellessons(todo,class_id);
            var $obj = $(".sellessons[class_id="+class_id+"][todo="+todo+"]");
            $obj.find('p').css('color', 'red');
            $obj.parent().siblings().find('p').css('color','black');
            
        });
        function ajaxsellessons(todo,class_id){
            $.ajax({
                type: "POST",
                url:"/default/index/"+todo,
                data:"class_id="+class_id,
                success:function(response){
                    if(response){
                        //alert(response);
                    }else{
                        alert("error");
                    }
                }
            });    
        }
    });
</script>
</head>

<body>
<div class="wrap">
  <div class="tab_box">
  <div class="tab_title">    <img src="/images/teacher/n_icon.png">     </div>
  
  <table border="0" cellpadding="0" cellspacing="0" class="tab" width="100%">
  
  <tr>
    <td width="25%" align="center"><p><a href="http://test.ureading.com/r.php?name=student"><img src="/images/teacher/st_icon.png" width="61" height="72"><br/>  </a></p></td>
    <td width="25%" align="center"><p><a href="http://test.ureading.com/r.php?name=teacher"><img src="/images/teacher/tc_icon.png" width="62" height="72"><br/>  </a></p></td>
    <td width="50%" align="center">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
        <tr>
            <td width="10%" align="center">8 :</a>
            <td width="45%" align="left"><a todo="selyuwen" class_id="2" class="sellessons" style="cursor:pointer"><img src="/images/teacher/wl_icon.png" width="67" height="70"><p style="color:red;" id='8yuwen'>   </p></a></td>
            <td width="45%" align="left"><a todo="selwuli" class_id="2"class="sellessons" style="cursor:pointer"><img src="/images/teacher/wl_icon.png" width="67" height="70"><p style="color:red;" id='8wuli'>   </p></a></td>
        </tr>
        <tr>
            <td width="10%" align="center">9 :</a>
            <td width="45%" align="left"><a todo="selyuwen" class_id="3" class="sellessons" style="cursor:pointer"><img src="/images/teacher/wl_icon.png" width="67" height="70"><p style="color:red;" id='9yuwen'>   </p></a></td>
            <td width="45%" align="left"><a todo="selwuli" class_id="3" class="sellessons" style="cursor:pointer"><img src="/images/teacher/wl_icon.png" width="67" height="70"><p style="color:red;" id='9wuli'>   </p></a></td>
        </tr>
    </table>
    </td>
  </tr>
  <tr>
  <td colspan="3" align="left">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="/default/clear/clearexams/op/todb" target="_blank"><img src="/images/teacher/pack.png" width="100" height="32" style="padding-top:0px;"></a>
  </td>
  </tr>
</table>
</div>
</body>
</html>

このページはajaxによって非同期で自分のデータを取得します.
これにより、2つのドメインのデータは1つのページで操作できます.
これがiframeの役割です!
ドメイン間で操作できます!