【问题标题】:How to access Firebug's information from Firebug's console?如何从 Firebug 的控制台访问 Firebug 的信息?
【发布时间】:2015-06-11 07:51:38
【问题描述】:

Firebug 在控制台中的各种选项卡下显示的信息是否也可用?

例如在命令行中,我可以创建对象、做简单的数学运算、执行 JavaScript 等。例如,我可以为 HTTP 请求创建一个对象:

var request = new XMLHttpRequest();

但我想知道是否有一些“全局”变量,它实际上包含 request 变量并且我可以从中读取。比如:

console.log(global_http_request.referring_url);

请注意,我不知道如何显示指向当前页面的引用 URL(为此我可以使用例如 Firefox 的 工具 > 页面信息 并搜索“Referring URL”或 Firebug 的 Net 面板并按 XHR 过滤)。

我已经尝试过(在控制台中)访问引用 URL,但没有成功:

var request = new XMLHttpRequest();
undefined
console.log(request.HEADERS_RECEIVED)
2
console.log(request.HEADERS_RECEIVED.valueOf)
valueOf()
console.log(request.HEADERS_RECEIVED.toString)
toString()
console.log(request.HEADERS_RECEIVED.toString())
2
console.log(request.HEADERS_RECEIVED.valueOf())
2
console.log(request.getAllResponseHeaders.name.valueOf.toString())

function valueOf() {
    [native code]
}

console.log(request.getAllResponseHeaders())
(an empty string)

【问题讨论】:

  • 变量request不是你想要的吗??
  • 你的问题的标题很混乱。您的问题似乎与如何获取 XHR 的推荐人有关,而不是关于 Firebug。
  • 所以我假设您的问题实际上是如何从 JavaScript 中获取 XHR 的 Referer 请求标头,对吧?

标签: javascript firebug


【解决方案1】:

使用标准 JS 无法获取大量数据,但 Firebug 可以访问这些数据,因为它以比网页更高的权限运行。例如,我认为响应标头是通过黑名单运行的。

但是,如果您只是希望 JS 访问数据以简化调试,您应该能够在 Firebug 中通过右键单击 XHR 对象并选择“在命令行中使用”来获得它。

【讨论】:

  • 这很有趣,因为有些页面在“XHR”下没有显示任何内容,而我现在打开的另一个页面说引荐来源网址是同一页面(通过您通过 $p 提到的步骤获得)和Firefox 中的页面信息表明引用者是 stackoverflow 页面。
  • 所以简短的回答是:不,这不可能吗?另一个答案中提到的window 对象呢?
  • FWIW,我刚刚测试了一些东西,看来要从 XHR 获取 Firebug 信息,您需要右键单击 Net 面板中的 XHR 请求 - 控制台面板为您提供了一个普通的 XHR 对象.但这应该让您准确地返回您在 Firebug 中看到的内容。无论如何,我实际上对您要问的确切内容感到很困惑(例如,除了您创建的那个之外,什么是“实际 XHR”?),但我认为您不会找到除了给出的方法之外的其他方法。
  • 我在问var request = new XMLHttpRequest(); 是否没有创建全新的(可能是空的)XMLHttpRequest() 实例,这与加载我的页面时使用的XMLHttpRequest() 无关?如果是,那么@epascarello 的回答将不起作用。我也没有成功使用window 对象。
  • 是的,这会创建一个全新的空实例。
【解决方案2】:

但我想知道是否有一些“全局”变量实际上 保存我的实际 XMLHttpRequest() 并且我可以从中读取?

这个全局对象被称为window

【讨论】:

  • 请原谅我的愚蠢问题,但我试图通过console.log(window.XMLHttpRequest.HEADERS_RECEIVED.toString) 获得提及的推荐人,但它什么也没给我。我做错了什么?
  • 您似乎已将变量命名为request,因此您可以尝试查找window.request 或仅查找request。当然收到的你只能在异步请求执行完成后才能读取响应头。
  • var request = new XMLHttpRequest(); 没有创建新的XMLHttpRequest() 对象吗?我的意思是新的,它与已经存在于某处并具有设定值的原件无关。
猜你喜欢
  • 1970-01-01
  • 2011-10-26
  • 2012-07-30
  • 2011-03-21
  • 2011-08-25
  • 1970-01-01
  • 2014-04-26
  • 1970-01-01
  • 2013-05-28
相关资源
最近更新 更多