Опитвам се да имам iframe модален изскачащ прозорец на родителя на iframe, след като щракна върху връзка в iframe. Това работи, но функцията addEventListener на родителската страница се задейства при зареждане на страницата, вместо да изчаква щракването от дъщерния iframe. Търсих в този сайт и не мога да намеря отговора, който търся. Ето кода от родителя:
<script>
$(document).ready(function(){
$("#closer").click(function () {
$("body").css('overflow','auto');
$(".overlay").hide("fast");
});
window.addEventListener("message", function(event) {
$("body").css('overflow','hidden');
$(".overlay").show("fast");
console.log("Hello from " + event.data);
});
});
</script>
Това е кодът от дъщерния iframe:
<script>
$(function() {
$(".standard").click(do_stuff);
function do_stuff(){
parent.postMessage("child frame", "*");
}
});
</script>
Добавих регистрационния файл на конзолата, за да опитам да проследя как работи.
.click(do_stuff)
, а не.click(do_stuff())
? Допълнителните скоби биха причинили този проблем. - person Barmar   schedule 19.04.2015child frame
или друго съобщение? - person Barmar   schedule 19.04.2015debugger;
къмdo_stuff
, за да го хванете, когато работи. - person Barmar   schedule 19.04.2015event.data
, когато това се случи? - person Barmar   schedule 19.04.2015