【问题标题】:Inspecting Firefox Components.interfaces.nsIDOMWindowUtils.screenPixelsPerCSSPixel value in Javascript Scratchpad在 Javascript Scratchpad 中检查 Firefox Components.interfaces.nsIDOMWindowUtils.screenPixelsPerCSSPixel 值
【发布时间】:2012-12-20 01:14:07
【问题描述】:

我正在使用 Firefox Scratchpad 来了解缩放行为 当用户键入 CTRL-PLUSCTRL-MINUS 键时的结果。 在 Javascript Scratchpad 中,我正在评估访问 Components.interfaces.nsIDOMWindowUtils.screenPixelsPerCSSPixel 像这样的属性:

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

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

Exception: The operation is insecure.

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

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

我需要做什么才能显示 Javascript Scratchpad 那个值?

这只是暂时的,以便在学习期间获得理解 调试仪式。暂时搁置一个明显的问题“为什么它是一个 显示比例因子的安全风险?”。我只是在 标准且安全的 Firefox 控件范围内的值 例如启用/禁用about:config 值,我可以轻松地 完成后撤消。

【问题讨论】:

    标签: firefox scratchpad


    【解决方案1】:

    这是我找到的答案:

    从 Scratchpad 范围访问 window 变量 环境(参见其环境菜单)设置为内容产生一个 对象的类型,而如果环境设置为浏览器,则不同 正在播放的对象类型(CTRL-L 在便笺簿中报告它是 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

    【讨论】:

      猜你喜欢
      • 2013-08-24
      • 1970-01-01
      • 1970-01-01
      • 2015-06-09
      • 2016-05-05
      • 2014-02-21
      • 2017-09-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多