有没有办法让Firebug在网站上根本不起作用?
当我在jQuery中开发时,我经常发现自己在Chrome/Firebug控制台中键入选择器并查看它们给我的内容.它们总是很好地格式化,就像它们是数组一样:

我试图找出使控制台将对象视为数组的原因.例如,以下自定义对象不被视为数组:
function ElementWrapper(id) {
this[0] = document.getElementById(id);
}
Run Code Online (Sandbox Code Playgroud)

如果我然后添加length属性和splice方法,它神奇地用作数组,任何具有整数键的属性被视为数组的成员:
function ElementWrapper(id) {
this[0] = document.getElementById(id);
this.length = 1;
this.splice = Array.prototype.splice;
}
Run Code Online (Sandbox Code Playgroud)

所以基本上我的问题是:什么决定控制台是否将对象显示为数组?它是否有任何基本原理,或者它是完全随意的"如果一个对象具有这些属性,它必须是一个数组?" 如果是这样,决定性的属性是什么?
是否有任何Firefox附加组件可用于查找部分JavaScript导致内存泄漏?
我已经安装了FireBug,但我不知道如何确定我的HTTP响应中是否存在某个http标头.我应该在哪里查找这些信息?
是否可以使用.NET 3.5/4.0在WinForm Web浏览器中检查HTML元素?
可能使用IHighlightRenderingServices接口或Html Agility Pack?
我希望应用程序像FireBug一样运行:
只需用鼠标悬停要检查的元素,然后单击它.在1.7之前的Firebug版本中,这会自动切换到HTML面板并在节点视图中选择适当的元素.

编辑:
哇,我刚刚遇到http://www.selectorgadget.com/,这正是我想要做的.这是在Javascript中,在查看过去2小时的源代码后,我仍然不知道如何将其合并到我的程序中...
据我所知,它使用DOM元素的标记化和递归分析来确定CSS选择器路径:http://www.selectorgadget.com/stable/lib/dom.js.
编辑: 好的!我已经将selectorgadget加载到我的应用程序中.它允许您选择与Firebug完全相同的HTML元素!甚至创建Xpath查询.

但是,我正在使用AxWebBrowser而且我仍然坚持如何使用HtmlAgilityPack ...
private void xpathQuery_Click(object sender, EventArgs e)
{
// Load Browser
HtmlWindow window = axWebBrowser1.Document.Window; // <---- 'object' does not contain a definition for 'Window'
string str = window.Document.Body.OuterHtml;
// Load HTML
HtmlAgilityPack.HtmlDocument HtmlDoc = new HtmlAgilityPack.HtmlDocument();
HtmlDoc.LoadHtml(str);
//Process Xpath Query
HtmlAgilityPack.HtmlNodeCollection Nodes = HtmlDoc.DocumentNode.SelectNodes(xpathText.Text);
//Print in Text box
foreach (HtmlAgilityPack.HtmlNode Node in Nodes)
{
richTextBox1.Text += Node.OuterHtml + "\r\n"; …Run Code Online (Sandbox Code Playgroud) 问候:我花了几天时间试图找到一个工具,它可以显示浏览器计算的每个CSS规则的确切CSS特性数.我已经查看了许多在线资源,包括查看CSS特性的工具 - 那里有关于重写类等的链接,但我希望看到在应用特定CSS规则时浏览器计算和使用的确切特征数.
为什么我需要查看精确的CSS特异性计算?
我无法克服某个问题,即浏览器使用基于该规则与元素的接近度的CSS规则,但我之前定义了另一个规则,该规则应该具有比浏览器应用的规则更高的特异性.我没有一个简单的代码,我可以用来演示使用jsfiddle和我试图调试的代码太复杂,不包括在小提琴中.
几乎每一次搜索都会导致人们指向某种"CSS特殊规则"或"理解CSS特异性"链接.我理解CSS特性应该如何工作,广泛使用Firebug和Chrome开发人员工具,并且非常了解指向理解特异性规则的链接.我的任务是尝试查看一个浏览器引擎在将一个CSS规则应用于另一个时的想法!并且因为它已经计算了这个信息以决定哪个规则覆盖其他规则,所以它应该是可访问的信息,但我不知道如何?
我面临的问题的一个非常基本的例子:
.testClass1 .title, .testClass2 .testClass1 .title { corresponding CSS styles }
.testClass2 .title, .testClass1 .testClass2 .title { corresponding CSS styles }
Run Code Online (Sandbox Code Playgroud)
或者它可以像这样编码....(在最终结果中没有任何不同.)
.testClass1 .title { corresponding CSS styles } --- call it Rule 1
.testClass2 .testClass1 .title { corresponding CSS styles } --- call it Rule 2
.testClass2 .title { corresponding CSS styles } --- call it Rule 3
.testClass1 .testClass2 .title { corresponding CSS styles } --- call it Rule …Run Code Online (Sandbox Code Playgroud) css firebug css-selectors css-specificity google-chrome-devtools
背景故事:我有一个包含多个CSS的页面,它们相互覆盖.有这么多划掉的CSS样式,所以我不想看到它们.
我知道Firefox上的Firebug提供了这个功能(只显示应用的CSS),它可以显示CSS文件的CSS样式(整洁!).
我们如何在Chrome上使用此功能?我尝试安装Firebug Lite for Chrome但没有运气.
PS:Chrome有Computed Style选项卡,但它没有显示什么样的样式来自什么CSS文件.
我有这样的CSS代码:
:-moz-placeholder,::-moz-placeholder {
color: #999;
/*some additional font styling*/
}
Run Code Online (Sandbox Code Playgroud)
我可以单击"Inspect element"并查看有关元素的所有样式信息.但是我可以在哪里看到已应用于元素占位符的所有CSS规则?
我在Java中创建了一个非常简单的JSON API.它实际上是一个项目Zomboid mod,它提供对象坐标.这就是我的HTTP处理程序的样子:
public class JSONZomboid implements HttpHandler
{
@Override
public void handle(HttpExchange t) throws IOException {
// HEADERS
Headers headers = t.getResponseHeaders();
headers.set("Content-Type", "text/json");
headers.set("Access-Control-Allow-Origin", "pzmap.crash-override.net");
t.sendResponseHeaders(200,0);
//BODY
OutputStream os = t.getResponseBody();
os.write("{\n".getBytes());
// generate JSON here
os.write("}".getBytes());
os.close();
}
}
Run Code Online (Sandbox Code Playgroud)
我想使用userscript将它加载到Project Zomboid地图项目中,这意味着我需要启用CORS来连接.这是通过简单的代码完成的:
PlayerRenderer.prototype.fetchInfo = function() {
$.get("http://127.0.0.1:8000/test", {}, this.displayPoints.bind(this));
}
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
警告:阻止跨源请求:同源策略不允许在http://127.0.0.1:8000/test上读取远程资源.(原因:CORS标题'Access-Control-Allow-Origin'与'pzmap.crash-override.net'不匹配).
即使在控制台中我也能清楚地看到错误是误导性的:

如果我还没有讨厌CORS,我现在就开始讨厌它了.你能否告诉我allow origin header中的实际字符串是什么?
firebug ×10
javascript ×6
css ×4
firefox ×3
html ×2
jquery ×2
.net ×1
c# ×1
console ×1
cors ×1
debugging ×1
firebug-lite ×1
http ×1
http-headers ×1
jsfiddle ×1