簡體   English   中英

如何獲取包含動態內容的頁面的html?

[英]How would I get the html of a page that contains dynamic content?

我需要獲取頁面的html,其內容是通過Ajax動態生成的。 *從另一個頁面。

我知道我可以使用Ajax來獲取頁面的html,但是由於內容是動態的,因此它尚不存在。

$.get( "ajax/test.html", function( data ) {
  $( ".result" ).html( data );
  alert( "Load was performed." );
});

任何建議/方向表示贊賞。

如果我對您的理解正確,那么ajax/test.html頁面上的內容將在該頁面完全加載后通過Javascript更新。 這不是AJAX旨在處理的事情。 如果動態頁面位於同一域內,則一種可能的途徑是將頁面加載到iframe中,並在指定的時間范圍后獲取生成的標記:

<iframe src="ajax/test.html" id="ajax-frame"></iframe>

<script>
    setTimeout(function() {
        var markup = document.getElementById('ajax-frame').contentWindow.document.body.innerHTML;
    }, 1000);
</script>

這篇文章中找到了檢索iFrame標記的方法。

您在尋找這樣的東西嗎? (查看控制台) http://jsfiddle.net/swm53ran/180/

<a href="#" class="ajax">Ajax finished</a>
<div class="content">
</div>

$(document).ready(function() {
    $('.ajax').on('click', function() {
        // ajax did something and added element to dom
        $('.content').append('hello');
        console.log($('html').html());
    });
});

我添加了一個按鈕來“模擬” ajax調用,然后更改了dom。 在ajax success()函數中,可以使用$('html')。html()代碼,該代碼將在調用ajax之后為您提供視圖的html。

試試這個,data.responseText應該讓您響應。

   var jqxhr = $.get( url, function(data)  
   { 
     console.log( "success" ); 
   }) 
   .done(function()  
   { 
   }) 
   .fail(function()  
   { 
   }) 
   .always(function()  
   { 
   });

   // Perform other work here ... 
   // Set another completion function for the request above 
   jqxhr.complete(function(data)  
   { 
     alert(data.responseText); 
   }); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM