从Firefox书签中呈现的http-get中读取

时间:2020-03-05 18:46:37  来源:igfitidea点击:

我正在尝试获取一个Firefox插件来从HTTP get中读取数据,解析结果并将它们显示为书签状下拉菜单中的链接。

我的问题是:是否有人可以执行此操作的示例代码?

解决方案

回答

我自己从没开发过,所以我不确定在Firefox插件中通常是如何完成的,但是由于插件脚本是JavaScript,因此我可能会在加载方面有所帮助。假设一个名为url的变量包含我们要请求的URL:

var xmlhttp = new XMLHttpRequest();
xmlhttp.open("GET", url, true);

xmlhttp.onreadystatechange = function() {
    if(this.readyState == 4) { // Done loading?
        if(this.status == 200) { // Everything okay?
            // read content from this.responseXML or this.responseText
        } else { // Error occurred; handle it
            alert("Error " + this.status + ":\n" + this.statusText);
        }
    }
};

xmlhttp.send(null);

关于此代码的几点注意事项:

  • 我们可能需要更复杂的状态码处理。例如,200不是唯一的非错误状态代码。有关状态代码的详细信息,请参见此处。
  • 我们可能希望有一个超时时间来处理由于某种原因而没有在合理的时间内到达readyState 4的情况。
  • 我们可能想在收到较早的readyStates时执行操作。此页面记录了readyState代码以及XMLHttpRequest对象上的其他属性和方法,我们可能会发现它们有用。

回答

罗伯特·沃克(Robert Walker)在描述如何发送请求方面做得非常出色。我们可以在此处阅读有关Mozilla的xmlhttprequest的更多信息。

我只是补充说,将使用以下命令找到响应(使用罗伯特的代码)

xmlhttp.responseText

(编辑,我读得不够仔细,谢谢罗伯特)

尽管我们提到要解析数据中的链接,但并未确切说明数据是什么。我们可以将xmlhttp.responseText作为xml文档,解析出链接,然后将其放入菜单列表或者我们喜欢的任何菜单中。