[英]How to get XMLHttpResponse from a java class to JS in JSP and parse it
[英]Get innerHTML from XMLHttpResponse
我正在嘗試編寫一個chrome擴展名,該擴展名將從當前頁面獲取一個值,然后使用該信息轉到另一個頁面並從html響應中提取特定元素。 我可以很好地處理html響應,但無法解析html響應以獲取特定元素。
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>
如何從外部頁面獲取此值? 是否有更好的方法來請求此信息?
您的XHR響應是一個字符串,而不是DOM。 使用jQuery,您將能夠將其轉換為DOM並進行查詢。
function handleResponse(xhr){
$(xhr.response).find('#CF00N80000005MAX6_ileinner')
}
這就像不解析對DOM對象的HTML響應一樣簡單。 根據MDN,這是解析XML(或HTML以及Vanilla JavaScript)的方法:
var parser = new DOMParser();
var doc = parser.parseFromString(xhr, "text/xml");
然后使用新的DOM Object doc
訪問元素。
var contactElement = doc.getElementById("CF00N80000005MAX6_ileinner");
alert(contactElement.childNodes[0].nodeValue);
我還注意到您將childNodes
拼寫錯誤,但這不是主要問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.