0

我正在使用 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最后一个之后键入会导致异常:lscreenPixelsPerCSSPixel

Exception: The operation is insecure.

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

在这种情况下,该devtools.chrome.enabled标志设置为 true,但这似乎并不重要,因为仍在抛出异常。

为了让 Javascript Scratchpad 显示该值,我需要做什么?

这只是暂时的,以便在调试过程中获得理解。暂时搁置“为什么显示比例因子会带来安全风险?”这个显而易见的问题。我只是在从标准和安全的 Firefox 控件(例如启用/禁用about:config值)的范围内获取值之后,我可以在完成后轻松撤消这些值。

4

1 回答 1

0

这是我找到的答案:

从 Scratchpad 范围访问window其 Environment(请参阅其 Environment 菜单)设置为 Content 的变量会产生一种类型的对象,而如果 Environment 设置为 Browser,则正在播放不同类型的对象(CTRL-L在 Scratch pad 中报告它是类型ChromeWindow)。window.content对象是相对于对象的内容对象ChromeWindow

的价值

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

相对于window对象 ( ChromeWindow) 对象返回 1,同时在显示 1 以外的东西上调用它window.content并显示涉及缩放。

(编辑:我重新定位了曾经在这里的 Javascript 代码;见下文。)

为了演示如何使用该值,我在Finding top-level X Window x/y coordinates of CTRL-F text in Firefox 中的另一个问题的回答中提供了一些示例Javascript

于 2013-01-06T18:44:43.650 回答