我怎么能把一串HTML成DOM对象在一个Firefox扩展?
-
08-06-2019 - |
题
我下载的网页(签汤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;
}
}
注意到 overrideMimeType 和 responseXML.
的 readyState == 4
是"已完成".
尝试创建一个div
document.createElement( 'div' );
然后设置标签汤HTML的innerHTML的div。浏览器应该过程,进入XML,然后你可以分析。
该innerHTML酒店采用字符串 指定一个有效的组合 文字和元素。当innerHTML 财产被设定,鉴于字符串 完全取代了现有的 内容的对象。如果串 包含HTML标签的字符串 分析和格式为的是安置 进入文件。
所以你要下载网页作为一个XML对象使用javascript,但你不想使用一个网页?因为你有没有控制什么用户将做(闭幕标签或窗户或诸如此类的东西),你会需要这样做就像一个OS x仪表板的部件或某种独立的应用。有Firefox扩展也将工作,除非你需要担心的用户关闭浏览器。
是否有任何选择,除了使用隐藏的面把戏?
不幸的是,没有,不是现在。否则microsummary码你会用它来代替。
如果不是,什么是最好的方法做面的伎俩所以,你的代码工作的上下文以外的任何目前开放签(这样,封闭片不会搞砸了代码等)?
代码你引用的最近浏览器窗口,所以关闭片不会影响分析。关于浏览器窗口将中止你的负担,但可以处理(检测装载被中止并重新启动它在另一窗口的实例)并不经常发生。
你需要一个DOM窗口框架的正常工作,因此没有干净的解决方案的时刻(如果你热衷于使用mozilla parser).