如何在Firefox扩展中将HTML字符串转换为DOM对象?

the*_*sdj 26 javascript firefox dom

我正在使用XMLHttpRequest下载一个网页(标签汤HTML),我想获取输出并将其转换为DOM对象,然后我可以运行XPATH查询.如何从字符串转换为DOM对象?

似乎一般的解决方案是创建一个隐藏的iframe并将字符串的内容抛入其中.已经有议论更新的DOMParser支持文本/ HTML,但像Firefox 3.0.1你仍然可以获得一个NS_ERROR_NOT_IMPLEMENTED,如果你尝试.

除了使用隐藏的iframe技巧之外还有其他选择吗?如果没有,那么执行iframe技巧的最佳方法是什么,以便您的代码在任何当前打开的选项卡的上下文之外工作(这样关闭选项卡不会搞砸代码等)?

是为什么我正在寻找除iframe黑客之外的解决方案的一个例子,如果我必须编写所有代码以获得强大的解决方案,那么我宁愿继续寻找其他东西.

Dar*_*opp 10

Ajaxian实际上有一篇关于今天从iframe插入/检索html帖子.您可以使用他们在那里发布的js片段.

至于处理浏览器/标签的最后,你可以连接到onbeforeunload(http://msdn.microsoft.com/en-us/library/ms536907(VS.85).aspx)事件,做任何你需要做的.


Ste*_*ard 6

尝试这个:

var request = new XMLHttpRequest();

request.overrideMimeType( 'text/xml' );
request.onreadystatechange = process;
request.open ( 'GET', url );
request.send( null );

function process() { 
    if ( request.readyState == 4 && request.status == 200 ) {
        var xml = request.responseXML;
    }
}
Run Code Online (Sandbox Code Playgroud)

注意overrideMimeTyperesponseXML
readyState == 4是“已完成”。