JavaScriptでHTMLのDOMノードを扱う

で、なんとなく思いついたので以下のように解決するようにした。

GM_xmlhttpRequest({
	method : "GET",
	url : i.href,

	onload : function (req) {
		// てきとーなエレメント作って突っ込む (ブラウザにパースさせる)
		var d = document.createElement("div");
		d.innerHTML = req.responseText;

		// d を最初のコンテキストノードにして文書を XPath 検索
		$X(".//foobar", d);
	},

	onerror : function (req) {
		alert(req.responseText);
	}
});

なんてキモイ!

ふむ、いいね。
ドメインが一緒なら iframe つかうという技も。こんな感じの。

var f = document.createElement('iframe');
f.height = 0;
f.width = 0;
f.onload = function() { alert(f.contentWindow.document.title); };
f.src = url;
document.appendChild(f);

これなら getElementById も使える。キモイのは一緒だけど。