2016-12-06 56 views
0

我在嘗試編寫一個將從當前頁面獲取值的chrome擴展,然後使用該信息轉到另一個頁面並從html響應中提取特定元素。我可以很好地獲得html響應,但我無法解析html響應以獲取特定元素。從XMLHttpResponse獲取innerHTML

content.js

function getTicketInfo(){ 
    var ticketURI = document.getElementById("p3_lkid").value; 
    var ticketNumber = document.getElementById("p3_lkold").value; 

    var xhr = new XMLHttpRequest(); 
    xhr.open('GET',"remotePage.html",true); 
    xhr.onreadystatechange = function(){ 
     if(xhr.readyState == 4 && xhr.status == 200){ 
      function handleResponse(xhr) 
     } 
    } 

    xhr.send(); 
} 

function handleResponse(xhr){ 
    var contactElement = xhr.getElementById("CF00N80000005MAX6_ileinner"); 
    alert(contactElement.clildNodes[0].nodeValue); 
} 

remotePage.html

<html> 
    <div id="CF00N80000005MAX6_ileinner"> 
     <a href="/0033400001pt8Ox" id="lookup0033400001pt8Ox00N80000005MAX6">Text I need!</a> 
    </div> 
</html> 

我怎樣才能從外部頁面這個值?有沒有更好的方法來請求這些信息?

+0

您可以嘗試將它作爲GET地址中的參數值傳遞,如果這是您可以執行的操作。但它會顯示。 – alexr101

回答

0

您的XHR響應是一個字符串,而不是DOM。 使用jQuery,您可以將其轉換爲DOM並進行查詢。

function handleResponse(xhr){ 
    $(xhr.response).find('#CF00N80000005MAX6_ileinner') 
} 
0

這就像不解析HTML對DOM對象的響應一樣簡單。根據MDN,你這是怎麼解析XML(或HTML,並與香草的JavaScript):

var parser = new DOMParser(); 

var doc = parser.parseFromString(xhr, "text/xml");

,然後使用新的DOM對象doc訪問元素。

var contactElement = doc.getElementById("CF00N80000005MAX6_ileinner"); 
alert(contactElement.childNodes[0].nodeValue); 

我也注意到你拼錯childNodes錯了,但那不是主要問題。

相關問題