var app = angular.module('plunker', []);

app.controller('mainCtrl', MainCtrl);

function MainCtrl($scope, $window) {
  $scope.name = 'Parent Window';
  $scope.message = "";
  $scope.outsideMessages = [];
  var receiverWindow;
  var vm = this;
  var iframeMessaging = new IframeMessaging();

  $window.onload = function() {
    receiverWindow = document.getElementById("ow").contentWindow;
  }

  $window.onmessage = function(e) {
    vm.addMessage("Varun:" + e.data);
    $scope.$digest();
  }
  vm.addMessage = function(msg) {
    $scope.outsideMessages.push(msg);
  }
  vm.send = function() {
    vm.addMessage($scope.name+': ' +$scope.message);
    iframeMessaging.postMessageToIframe($scope.message,'ow');
    $scope.message = "";
  }
}
<!DOCTYPE html>
<html ng-app="plunker">

<head>
  <meta charset="utf-8" />
  <title>AngularJS Plunker</title>
  <link data-require="bootstrap@*" data-semver="4.0.0-alpha.2" rel="stylesheet" href="https://cdn.rawgit.com/twbs/bootstrap/v4-dev/dist/css/bootstrap.css" />
  <script data-require="bootstrap@*" data-semver="4.0.0-alpha.2" src="https://cdn.rawgit.com/twbs/bootstrap/v4-dev/dist/js/bootstrap.js"></script>
  <script>
    document.write('<base href="' + document.location + '" />');
  </script>
  <link rel="stylesheet" href="style.css" />
  <script data-require="angular.js@1.4.x" src="https://code.angularjs.org/1.4.12/angular.js" data-semver="1.4.9"></script>
  <script src="iframe-messaging.js"></script>
  <script src="app.js"></script>
</head>

<body ng-controller="mainCtrl as vm">

  <div class="container row">
    <div class="col-sm-6">
      <h3>Hi {{name}}!</h3>

      <div id="msg" class="jumbotron" style="height:400px; float:auto">
        <div ng-repeat="msg in outsideMessages" ng-bind="msg">

        </div>
      </div>

      <div class="form-group">
        <input id="txtmsg" ng-keyup="$event.keyCode == 13 ? vm.send($event) : null" ng-model="message" placeholder="enter message" class="form-control" />
      </div>
      <div class="form-group">
        <button id="btnsend" ng-click="vm.send()" class="btn btn-larg btn-success">Send</button>

      </div>

    </div>
    <div class="col-sm-6">
      <iframe width="450" height="580" src="OtherPage.html" id="ow"></iframe>
    </div>
  </div>

</body>

</html>
/* Put your css in here */

<!DOCTYPE html>
<html>

<head>
  <link data-require="bootstrap@*" data-semver="4.0.0-alpha.2" rel="stylesheet" href="https://cdn.rawgit.com/twbs/bootstrap/v4-dev/dist/css/bootstrap.css" />
  <script data-require="bootstrap@*" data-semver="4.0.0-alpha.2" src="https://cdn.rawgit.com/twbs/bootstrap/v4-dev/dist/js/bootstrap.js"></script>
  <script data-require="angular.js@1.4.x" src="https://code.angularjs.org/1.4.12/angular.js" data-semver="1.4.9"></script>
  <script data-require="angularjs@1.4.4" data-semver="1.4.4" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular-animate.min.js"></script>
  <script data-require="angularjs@1.4.4" data-semver="1.4.4" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular-sanitize.min.js"></script>
  <script data-require="angularjs@1.4.4" data-semver="1.4.4" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular.min.js"></script>
  <script src="iframe-messaging.js"></script>
  <script>
    var receiverApp = angular.module("receiverApp", []);
    receiverApp.controller("greenController", GreenController);


    function GreenController($scope, $window) {
      $scope.name = "Child Iframe Window";
      $scope.message = "";
      $scope.outsideMessages = [];
      var receiverWindow;
      var vm = this;
      $window.onload = function() {
        receiverWindow = $window.parent;
      }

      $window.onmessage = function(e) {
         vm.addMessage("Rupesh:" + e.data);
        
        $scope.$digest();
      }

      vm.send = function() {
        vm.addMessage($scope.name+': ' +$scope.message);
        receiverWindow.postMessage($scope.message, 'https://run.plnkr.co/seYy3co3uzMTikBZ/');
        $scope.message = "";
      }
      
      vm.addMessage = function(msg) {
        $scope.outsideMessages.push(msg);
      }
    }
  </script>
</head>

<body class="container" ng-app="receiverApp" ng-controller="greenController as vm">
  <h3>Hi {{name}}!</h3>


  <div id="msg" class="jumbotron" style="height:400px; float:auto">
    <div ng-repeat="msg in outsideMessages" ng-bind="msg">

    </div>
  </div>

  <div class="form-group">
    <input class="form-control" ng-keyup="$event.keyCode == 13 ? vm.send($event) : null" placeholder="enter message" ng-model="message" />

  </div>
  <div class="form-group">
    <button class="btn btn-large btn-info" ng-click="vm.send()">Send</button>
  </div>

</body>

</html>
function IframeMessaging() {
  var domain='*';
  return {
    postMessageToIframe: postMessageToIframe,
    postMessageToParent: postMessageToParent
  }
  
  function postMessageToIframe(message, targetIframeId) {
    var targetWindow = document.getElementById(targetIframeId).contentWindow;
    send(targetWindow,message);
  }
  
  function postMessageToParent(message) {
    var targetWindow = window.parent;
    send(targetWindow,message);
  }
  
  function send(targetWindow, message) {
      if (!targetWindow) return;
    targetWindow.postMessage(message, domain);
  }
}