2017-06-12 52 views
0

我有一個模板網站,我想用ajax調用的數據更改內容。用ajax數據更改fancybox iframe的內容

我有一個打開fancybox 3 iframe的按鈕。這個頁面的內容是我想改變的。

按鈕打開的fancybox:

'<i class="fa fa-info-circle fa-2x inv-details" invoiceId="' + data[index].invoiceid + '"' + 
'aria-hidden="true" data-fancybox data-type="iframe" data-type="iframe" href="javascript:;" data-src="/invoice_details/"</i>' 

點擊事件觸發Ajax調用:

$('#my_in').on('click', 'i.inv_details', function() { 
    var inv_id = $(this).attr("invoiceId"); 
    $.ajax({ 
     url: '/wp-admin/admin-ajax.php', 
     type: 'post', 
     dataType: 'json', 
     data: { 
      action: 'invoice_details_ajax', 
      inv_id: inv_id 
     }, 
     done: function (data) { 

      //HERE I WANT TO FIND THE CONTENTS OF THE 
      //OPEN IFRAME AND CHANGE THEM, LIKE SUCH: 
      // $('.fancybox-iframe').contents().find("#test #bankgiro").text('test'); 
      // This above works in console, if I load jquery first, it does not work here. 


     } 
    }); 
}); 

的iframe的jQuery選擇是正確的,因爲我可以通過鍍鉻控制檯編輯頁面。所以我認爲問題是它試圖在加載之前更改頁面?有沒有解決方案?

所有的答案我讀過的書中有一個空的fancybox iframe頁面,只需將數據附加到它。但在我的情況下,我已經有一個模板網站,我想改變的內容。鏈接我已閱讀:

的方式我:

How to show ajax response in fancybox iframe Loading dynamic AJAX content into Fancybox

回答

1

從描述中不清楚 - 你想在fancybox內部打開iframed頁面,並且想要發出改變頁面內容的ajax請求 - 同時?只是加載最終頁面會不會更明智?

我想你只需要使用url來傳遞發票ID,就像/invoice_details/?invoiceId=YOUR_ID一樣,並且避免混淆兩個請求。

0

如果你正在使用jQuery你已經嘗試過的document.ready並在window.onload等我假設你似乎傾向於繞過像這樣的事情,但是我會每隔0.5秒或者其他任何方式觸發一次setInterval(),檢查所需信息是否存在,如果存在,請執行所需操作,然後將其自動關閉。可以爲你工作需要等待頁面加載?