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

发布于 2024-07-04 20:09:23 字数 100 浏览 6 评论 0原文

我正在尝试让 Firefox 插件从 HTTP get 读取数据,解析结果并将它们作为链接呈现在类似书签的下拉菜单中。

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

I'm trying to get a Firefox plugin to read data from a HTTP get, parse the results and present them as links in a bookmark-like drop-down menu.

My quesion then is: Does anyone have any sample code that will do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

娇柔作态 2024-07-11 20:09:23

Robert Walker 出色地描述了如何发送请求。 您可以在此处阅读有关 Mozilla xmlhttprequest 的更多信息

找到响应(使用罗伯特的代码)

 xmlhttp.responseText

我只想补充一点,可以使用
编辑 - 我没有仔细阅读,谢谢罗伯特

尽管您提到要解析数据中的链接,但您没有准确指出数据是什么。 您可以将 xmlhttp.responseText 作为 xml 文档,解析出链接,并将其放入菜单列表或任何您喜欢的内容中。

Robert Walker did a great job of describing how to send the request. You can read more about Mozilla's xmlhttprequest here.

I would just add that the response would be found (using Robert's code) using

 xmlhttp.responseText


(Edit - i didn't read closely enough, thanks Robert)

You didn't indicate exactly what the data was, although you mentioned wanting to parse links from the data. You could the xmlhttp.responseText as an xml document, parse out the links, and place it into a menulist or whatever you like.

向地狱狂奔 2024-07-11 20:09:23

由于我自己从未开发过插件,所以我不确定这在 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 的情况。
  • 您可能想要在收到较早的就绪状态时执行一些操作。 此页面记录了readyState代码,以及XMLHttpRequest 对象,您可能会发现它很有用。

Having never developed one myself, I'm not certain how this is typically done in Firefox plugins, but since plugin scripting is JavaScript, I can probably help out with the loading part. Assuming a variable named url containing the URL you want to request:

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

A couple of notes on this code:

  • You may want more sophisticated status code handling. For example, 200 is not the only non-error status code. Details on status codes can be found here.
  • You probably want to have a timeout to handle the case where, for some reason, you don't get to readyState 4 in a reasonable amount of time.
  • You may want to do things when earlier readyStates are received. This page documents the readyState codes, along with other properties and methods on the XMLHttpRequest object which you may find useful.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文