postMessage实现跨域密码代添

来源:互联网 发布:linux 启动进程 start 编辑:程序博客网 时间:2024/05/20 17:41

登录页需要的js代码

(function(){

window.addEventListener('message', function(event){  
        // 通过origin属性判断消息来源地址  
       // if (event.origin == 'http://a.com') {  
var dataStr = event.data;   
  // alert(event.origin);
        //alert(dataStr);    // 弹出"I was there!"  
            //alert(event.source);  // 对a.com、index.html中window对象的引用  
                                  // 但由于同源策略,这里event.source不可以访问window对象  
           
        var data = eval('(' + dataStr + ')');;
            console.log(data);
           document.getElementById(data.nameId).value=data.name;
           document.getElementById(data.passwordId).value=data.password;
           document.getElementById(data.btnId).click();
        //}  
    }, false);

})()

代添页面的js

<body>

<iframe id="ifr" src="http://192.168.33.1:8080/sitweb" width="100%"></iframe>  
</body>


<script type="text/javascript">  
window.onload = function() {  
    var ifr = document.getElementById('ifr');  
    var targetOrigin = 'http://192.168.25.228:8080/sitweb';  // 若写成'http://b.com/c/proxy.html'效果一样  
                                        // 若写成'http://c.com'就不会执行postMessage了  
    ifr.contentWindow.postMessage('{"nameId":"userId","name":"admin123","passwordId":"password","password":"123456","btnId":"sub"}', targetOrigin);  
};  
</script> 


0 0
原创粉丝点击