可以說我有一點javascript代碼從PHP傳遞了一個包含整個html頁面的字符串。我將字符串寫入當前文檔,然後更改其中一個包含元素。事情是這樣的:查看javascript生成的html頁面的實際html源代碼
<script type="text/javascript">
var foo = <?php echo $html_document;?>;
document.open();
document.write(foo);
document.close();
document.getElementById("some_id_within_html_document").innerHTML = "some stuff";
</script>
這使我有我的期望輸出,一切都看起來不錯。當你查看該網頁的源時除外。如果我想稍後刮這個頁面並做同樣的事情,它會顯示javascript而不是瀏覽器解釋的html。使用這種方法,我怎麼可以刮取所需的HTML而不是生成它的JavaScript?我已經通過在php中處理字符串來繞過這個問題,但是我仍然很好奇,如果可以在查看源代碼/抓取頁面時以這種方式顯示解釋的HTML。
編輯: 大家都非常滿意,我從中學到了很多有關這裏實際發生的事情以及我應該遠離哪些做法。賈斯汀伍德給出了最簡單的解決方案,這個解決方案與我原來的問題相比,花費最少。
你意識到這是一個oxmoron?如果頁面是由腳本生成的,則它沒有源標記。但是,innerHTML屬性應該是基於[HTML片段序列化算法](http://dev.w3.org/html5/spec/single-page.html#serializing-html-fragments)的標記等價物。請注意,序列化文檔片段,然後使用HTML解析器將結果轉換回片段可能不會產生與原始結果相同的結果。 – RobG