It seems there is a problem with "modal: true" in Safari and it does not render content of iframe until resize or move of the dialog window.
The solution that works is to set
modal: false,
If you need a modal window you can add another "layer" which will disable all content and show non-modal dialog over it.
<style>
#overlay {
background-color: rgba(0, 0, 0, 0.8);
z-index: 99;
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
display: none;
}
#dialogShowInvoice
{
z-index: 9999
}
</style>
...
<div id="overlay"></div>
Then disable screen before opening the dialog
$('.showInvoiceButton').click(function (event) {
$("#overlay").show();
...
And enable it again when dialog is closed
$('#dialogShowInvoice').dialog({
...
modal: false,
...,
close: function( event, ui ) {
$("#overlay").hide();
}
});