Javascript Chrome扩展名:window.innerWidth=0?//奖励:最大化窗口

Javascript Chrome扩展名:window.innerWidth=0?//奖励:最大化窗口,javascript,google-chrome,google-chrome-extension,chromium,Javascript,Google Chrome,Google Chrome Extension,Chromium,我正在创建一个chrome扩展,以便在不同的屏幕大小之间轻松切换(以便测试响应性设计)。虽然这已经存在,但我认为这将是一个很好的锻炼 我遇到了两个问题: 当我尝试计算框架的大小(window.width-window.innerWidth)时,window.innerWidth在控制台日志中显示为0 我找不到任何方法轻松地最大化窗口。我可以调整到screen.width和screen.height,但这并不是最大化。我有什么选择?开发者网站和谷歌本身没有返回多少有用的信息 以下是我的一些代码:

我正在创建一个chrome扩展,以便在不同的屏幕大小之间轻松切换(以便测试响应性设计)。虽然这已经存在,但我认为这将是一个很好的锻炼

我遇到了两个问题:

  • 当我尝试计算框架的大小(window.width-window.innerWidth)时,window.innerWidth在控制台日志中显示为0

  • 我找不到任何方法轻松地最大化窗口。我可以调整到screen.width和screen.height,但这并不是最大化。我有什么选择?开发者网站和谷歌本身没有返回多少有用的信息

  • 以下是我的一些代码:

    function resize(win){
    window = win;
    frameWidth = window.width - window.innerWidth;
    frameHeight = window.height - window.innerHeight;
    console.log(window.innerWidth);
    ...
    }
    

    我想你要找的是window.outerWidth和window.outerHeight:

    var width=window.outerWidth-window.innerWidth

    但是你可能有这个权利,你可能会遇到的问题是试图从你的背景页面计算宽度。背景页的innerWidth为0,因为它是一个不可见的0大小窗口


    要获得实际的outerWidth(或innerWidth),您需要在相关的可见窗口中执行代码。如果内容脚本处于活动状态,您可以使用内容脚本执行此操作,或者您可以在扩展中创建一个新的HTML页面,将其加载到窗口的选项卡中,让它执行计算并使用sendRequest将数据发送回背景页面。

    您正在访问背景页面,这就是为什么您的宽度/高度为0。您必须访问当前窗口

    chrome.windows.getCurrent(function(w) {
      // You can modify some width/height here
    }
    
    描述了窗口属性。例如,可以使用以下命令修改宽度/高度:

    w.width = 300;
    w.height = 200;
    

    您是否正在访问扩展的范围或选项卡范围的
    窗口
    ?@ldiqual-Uhm我不知道,但我将假设扩展的结果为0。。。我该怎么改变呢?嗨,听起来你对0值返回的看法是对的。然而,我并不完全理解下面的解释;你介意更详细地解释一下还是给我指出正确的方向?明确地说,插件的想法是调整窗口大小以进行响应性布局测试——因此它将被大量使用,并且需要像闪电一样快。这有用吗?我真的试过了。事实上,我使用getCurrent来调整窗口的大小(这很有效),只是它调整了外部窗口的大小,我想将内部窗口的大小设置为我需要的大小。我会在回家后上传整个源代码(它在我的桌面上),我希望你不介意在那时达到峰值。