簡體   English   中英

如何獲取頁面不是當前內容的源代碼?

[英]How to get source code of page not the current content?

我有一個帶有文本框的頁面,其屬性value "Original Value" 讓我們假設我已加載它並在文本框中鍵入“ New Value”。 以下兩個示例均應返回-1 (我在Firefox控制台中嘗試過)。

// 1.
var wholecontento = "";
var wholecontento = document.documentElement.outerHTML;
alert(wholecontento.search("New Value"));

// 2.
var wholecontento = "";
var wholecontento = document.body.outerHTML;
alert(wholecontento.search("New Value"));

但是它們都返回大於1整數。 我該如何解決?

這是正確的行為。 您使用DOM(文檔對象模型)獲取HTML字符串,該DOM反映了您在瀏覽器中看到的當前HTML頁面(包括所做的任何更改)

如果需要保留文本框的舊值,則需要:

  1. 要么 ,在頁面加載時存儲文本框的原始值,以便以后進行比較
  2. 或者 ,僅當您需要真正的HTML源代碼時,才可以執行以下任一操作:
    1. 確保您的代碼是瀏覽器運行的第一部分代碼,要獲取跨瀏覽器的解決方案(請參閱此問題 )可能很棘手,然后在您的代碼中存儲document.body.outerHTML的副本document.body.outerHTML供以后使用。
    2. 或者 ,發起一個返回到當前URL的請求,並將返回正文存儲為HTML源代碼,這樣可以確保您擁有原始HTML源代碼的副本,但要花額外的1個請求。

 //jQuery code $.get(window.location.href, function (resp) { // store the resp.data on some object var sourceHTML = resp.data; }) .fail(function (resp) { // error handling }); 

在下面添加了Paul S的評論

document.body.outerHTML將僅包含<body>部分。 這個(new XMLSerializer).serializeToString(document)將為您提供整個<html> ,包括<!DOCTYPE html>

暫無
暫無

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

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