我正在寻找一种方法来获取iframe的contentWindow对象,并在用户执行某些操作后向其发送消息。我的当前解决方案在使用angular时感觉不太好(特别是从控制器中访问DOM)。
我创建了一个展示该问题的plunker: http://plnkr.co/edit/aXh4jydWGWfK3QQD4edd
是否有更多适用于angular的方法来执行postMessage?
控制器:
app.controller('Main', function($scope) {
$scope.click = function() {
var iframe = document.getElementById("inner").contentWindow;
iframe.postMessage("Hello iframe", '*');
}
});
HTML:
<body ng-controller="Main">
<button ng-click="click()">send message</button>
<iframe id="inner" src="inner.html"/>
</body>