3

我正在创建一个扩展名,以便在不同屏幕尺寸之间轻松切换(以便测试响应式设计)。尽管这已经存在,但我认为这将是一个很好的练习。Chrome扩展程序:window.innerWidth = 0? //奖金:最大化窗口

我遇到两个问题:

  1. 当我尝试计算帧的大小(window.width - window.innerWidth),window.innerWidth显示为0在控制台日志。

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

下面是我的一些代码:

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

您是否正在访问扩展程序范围或选项卡范围的“窗口”? – 2012-01-12 22:52:24

+0

@ldiqual严我没有线索,但我会假设扩展,因为结果是0 ...我该如何改变呢? – HannesFostie 2012-01-16 13:47:14

回答

-1

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

VAR WIDTH = window.outerWidth - 窗口。 innerWidth;

但是你可能有这样的权利,你可能会运行到的问题是试图来计算你的背景页面宽度。背景页面的innerWidth是0,因为它是一个不可见的0尺寸窗口。

要获得实际outerWidth(或innerWidth),你需要在有问题的可视窗口来执行代码。您可以使用内容脚本来执行此操作(如果该脚本处于活动状态),或者您可以在扩展程序中创建新的HTML页面,将其加载到窗口中的选项卡中,让它执行计算并使用sendRequest将数据发送回您的后台页面。

+0

嗨 听起来像你是正确的0值返回。但是,我完全不理解以下解释;你介意更详细地解释还是指向正确的方向? 为了清楚起见,插件的想法是调整响应式布局测试的窗口大小 - 所以它会被大量使用,并且需要像闪电般快速。这会工作吗? – HannesFostie 2012-01-14 19:48:42

+1

-1用于广告。 – 2012-01-16 14:33:39

1

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

chrome.windows.getCurrent(function(w) { 
    // You can modify some width/height here 
} 

窗口属性描述为here。例如,您可以使用以下方法修改宽度/高度:

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

我其实已经试过了。事实上,我使用getCurrent调整窗口大小(工作方式),它只是调整外部窗口的大小,而我想将内部窗口大小设置为我需要的大小。当我回到家时(我的桌面上),我会上传整个源代码,我希望你不介意在那时达到一个高峰。 – HannesFostie 2012-01-17 09:55:47

+0

好的,我会看看它。 – 2012-01-17 12:17:44

相关问题