在Javascript Scratchpad中检查Firefox Components.interfaces.nsIDOMWindowUtils.screenPixelsPerCSSPixel值

时间:2013-01-05 21:52:40

标签: firefox scratchpad

我正在使用Firefox Scratchpad来了解缩放行为 用户键入CTRL-PLUSCTRL-MINUS键时的结果。 在Javascript Scratchpad中,我正在评估一个访问该代码的Javascript代码片段 Components.interfaces.nsIDOMWindowUtils.screenPixelsPerCSSPixel 这样的财产:

var util = window.QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIDOMWindowUtils); 
util.screenPixelsPerCSSPixel

在Scratchpad中,在上面的CTRL-L中的最后一个l后输入screenPixelsPerCSSPixel导致异常:

Exception: The operation is insecure.

(请注意,当前活动的Firefox标签指向http://www.google.com)。

devtools.chrome.enabled标志设置为true 上下文,但这似乎并不重要,因为异常仍然被抛出。

为了让Javascript Scratchpad显示,我需要做些什么 那个价值?

这只是暂时的,以获得理解 调试仪式。暂时搁置一个明显的问题:“它为什么是一个 安全风险显示缩放因子?“。我只是在到达之后 来自标准和安全的Firefox控件范围的价值 例如,我可以轻松启用/禁用about:config值 我完成后会撤消。

1 个答案:

答案 0 :(得分:0)

以下是我找到的答案:

从Scratchpad范围访问window变量 环境(参见其环境菜单)设置为Content yeilds one 对象的类型,而如果Environment设置为Browser,则不同 对象的类型正在进行中(CTRL-L就在它的Scratch pad报告中 类型ChromeWindow)。 window.content对象是内容 相对于ChromeWindow对象的对象。

的值
....QueryInterface(Components.interfaces.nsIInterfaceRequestor).getInterface(Components.interfaces.nsIDOMWindowUtils).screenPixelsPerCSSPixel

相对于window对象(ChromeWindow)对象返回 1,在window.content上调用它时显示其他内容 超过1,表明涉及缩放。

(编辑:我重新定位了以前的Javascript代码;见下文。)

为了演示使用该值,我在Finding top-level X Window x/y coordinates of CTRL-F text in Firefox

回答了我的其他问题时提供了一些示例Javascript