Reputation: 422
I have a page with an iframe, and inside this iframe are some links that should open a modal window in the parent window. The thing is I dont have access to put code into the parent window. I just have access to this iframe. Is there a way this could be done with jquery with such limitations?
Thank you!
Upvotes: 6
Views: 27344
Reputation: 11
Spend 1 day to open modal windows from iframe document first i did single case :
parent.$("#you_modal_window_selector").css("visibility", "visible");
!!! keyword changin matter is PARENT. (in small letters)
Second i change all buttons in iframe included document with script:
<script>
$(function() {
$(".open-modal").on("click", function (e) {
var $this = $(this),
$href = $this.attr("href");
e.preventDefault();
parent.$($href).css("visibility", "visible");
parent.$(".modal-window-dark").css("visibility", "visible");
});
});
</script>
Upvotes: 0
Reputation: 525
You can use JQuery plugin SimpleModal
There's an option called "appendTo", where you can tell where do you put your Modal. The only problem with that approach is that the modal's overlay appear with iframe's size, so you must give it your desired width and height after you open it.
$('#div-modal').modal({
appendTo: $(window.parent.document).find('body'),
overlayCss: {backgroundColor:"#333"}, // Optional overlay style
overlayClose:true,
});
// Set overlay's width
$(window.parent.document).find('#simplemodal-overlay').css('width', '100%');
If the div you want to open as a modal is in your parent window, you could replace $('#div-modal')
with $(window.parent.document).find('#div-modal')
Upvotes: 8