Skip to content Skip to sidebar Skip to footer

Fetching Xml With Gm_xmlhttprequest

I'm trying to retrieve a page with greasemonkey and then extract a link from it, inserting the link into the current page. I'm having some trouble with: GM_xmlhttpRequest({ method:

Solution 1:

if the requested page is a well-formatted xml, then you are in the correct way. but you should change data.response.xml to data.responseXML

and i THINK you can't do this with a XMLDocument (result of the xml parser) because .getElementById works in HTMLDocument. however, you could do the following to have a valid HTMLDocument:

if (/^Content-Type: text\/xml/m.test(data.responseHeaders)) {
    data.responseXML = newDOMParser().parseFromString(data.responseText, "text/xml");
}
elseif (/^Content-Type: text\/html/m.test(data.responseHeaders)) {
    var dt = document.implementation.createDocumentType("html", "-//W3C//DTD HTML 4.01 Transitional//EN", "http://www.w3.org/TR/html4/loose.dtd");
    var doc = document.implementation.createDocument(null, null, dt);

    // I have to find a workaround because this technique makes the html*/head/body tags to disappear.  var html = document.createElement('html');
    html.innerHTML = data.responseText;
    doc.appendChild(html);

    data.responseXML = doc;
}

source: http://userscripts.org/scripts/review/56489

Post a Comment for "Fetching Xml With Gm_xmlhttprequest"