我下载的网页(签汤HTML)与程序和我想要的产出,并把它变成一个DOM对象然后我就可以运行XPATH queries。我怎样转换从一串入DOM对象?

看来,一般的解决方法是创造一个隐藏的框架和投掷的内容串到这一点。已经有 更新 DOMParser 支持text/html但Firefox3.0.1你还得到一个 NS_ERROR_NOT_IMPLEMENTED 如果你尝试。

是否有任何选择,除了使用隐藏的面把戏?如果不是,什么是最好的方法做面的伎俩所以,你的代码工作的上下文以外的任何目前开放签(这样,封闭片不会搞砸的代码等)?

是一个例子,为什么我在寻找一个解决方案的其他框架黑客,如果我必须要写 所有 这些代码要有一个可靠的解决方案,那么我宁愿继续寻找别的东西。

有帮助吗?

解决方案

Ajaxian实际上有一个 后插入/索html从一个框架 今天。你也许可以使用的js段,他们已经张贴在那里。

作为处理关的浏览器/tab,你可以连接到onbeforeunload(http://msdn.microsoft.com/en-us/library/ms536907(VS。85).aspx)的事件和做任何你需要做的。

其他提示

试试这个:

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;
    }
}

注意到 overrideMimeTyperesponseXML.
readyState == 4 是"已完成".

尝试创建一个div

document.createElement( 'div' );

然后设置标签汤HTML的innerHTML的div。浏览器应该过程,进入XML,然后你可以分析。

该innerHTML酒店采用字符串 指定一个有效的组合 文字和元素。当innerHTML 财产被设定,鉴于字符串 完全取代了现有的 内容的对象。如果串 包含HTML标签的字符串 分析和格式为的是安置 进入文件。

所以你要下载网页作为一个XML对象使用javascript,但你不想使用一个网页?因为你有没有控制什么用户将做(闭幕标签或窗户或诸如此类的东西),你会需要这样做就像一个OS x仪表板的部件或某种独立的应用。有Firefox扩展也将工作,除非你需要担心的用户关闭浏览器。

是否有任何选择,除了使用隐藏的面把戏?

不幸的是,没有,不是现在。否则microsummary码你会用它来代替。

如果不是,什么是最好的方法做面的伎俩所以,你的代码工作的上下文以外的任何目前开放签(这样,封闭片不会搞砸了代码等)?

代码你引用的最近浏览器窗口,所以关闭片不会影响分析。关于浏览器窗口将中止你的负担,但可以处理(检测装载被中止并重新启动它在另一窗口的实例)并不经常发生。

你需要一个DOM窗口框架的正常工作,因此没有干净的解决方案的时刻(如果你热衷于使用mozilla parser).

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top