В JavaScript, то script
, img
и iframe
теги все поддерживают событие.
Вы можете использовать его в ванильным JS, который уже answered, либо:
document.getElementById('#my-iframe').addEventListener('load', function() { ... });
document.getElementById('#my-iframe').onLoad = function() { ... };
Но если вам нужен пример того, как реализовать это в угловому конкретно, вы можете сделать это в контроллере или внутри функции ссылки директивы, используя аргумент element
.
В контроллере:
myApp.controller('SomeController', ['$scope', function($scope) {
var iframe = angular.element('#my-iframe');
iframe.on('load', function() {
console.log(iframe.height());
});
}]);
В директиве:
myApp.controller('SomeController', ['$scope', function($scope) {
$scope.foo = 'bar';
}])
.directive('myDirective', ['$interval', function($interval) {
function link(scope, element, attrs) {
var iframe = element.find('#my-iframe');
iframe.on('load', function() {
$interval(function() {
console.log(iframe.height();
}, 1000);
});
}
return {
link: link
};
}]);
Является ли URL-адрес iframe в том же домене? –