【发布时间】:2016-07-03 23:04:40
【问题描述】:
我正在将扩展程序从 Chrome 移植到 Firefox。弹出窗口有几个可以显示的不同大小的元素。我遇到的问题是当元素更改或body 调整大小时,显示弹出窗口的“窗口”不会调整大小。
这个问题似乎在 chrome 中不存在,有谁知道我做错了什么或者这是 Firefox 中的错误?我在下面包含了更改正文大小的代码,这适用于 chrome,但似乎不适用于 Firefox。
$('body').ready(function(){
$('body').animate({
'width':500,
'height':500
},500);
});
我也用$('body').css() 尝试过这个,以防animate() 是问题,但都不起作用。
此外,如果我向body 添加背景并缩小它,则可以看到背景在改变大小,而包含的窗口不会改变大小。
编辑: 添加更多信息以澄清问题
该扩展是一个 WebExtension 插件 (https://developer.mozilla.org/en-US/Add-ons/WebExtensions)
manifest.json
{
"manifest_version": 2,
"browser_action": {
"default_popup": "popup.htm"
},
"description": "Example extension",
"icons": {
"128": "example.png"
},
"name": "Example Extension",
"version": "1",
"applications":{
"gecko":{
"id":"example@example.com"
}
}
}
popup.htm
<!DOCTYPE HTML>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type=text/javascript src="js/jquery.js"></script>
<script type=text/javascript src="js/popup.js"></script>
</head>
<style>
body{
width:200px;
height:200px;
border:1px solid black;
}
</style>
<body>
<button id=reset type=button>200x200px</button>
<button id=shrink type=button>100x100px</button>
</body>
</html>
js/popup.js
$('body').ready(function (){
$('#reset').bind('click',function(){
$('body').css({
width:200,
height:200
});
});
$('#shrink').bind('click',function(){
$('body').css({
width:100,
height:100
});
});
});
加载上述扩展程序后,弹出窗口以其初始大小 (200x200) 正确显示。但是,当调整正文大小时,弹出窗口的大小不会更新。同样的扩展在 Chrome 中按预期工作(弹出调整大小)。
【问题讨论】:
-
你在使用 WebExtensions 吗?
-
我们需要一个完整的minimal reproducible example,而不仅仅是用于执行调整大小的 jQuerry 代码。我们需要看看弹出窗口是如何创建的。我们需要知道 type of Firefox extension 你正在开发什么。
-
我添加了一个更完整的示例,应该有助于使我的问题更清晰。
-
你确定这是Bootstrapped/restartless extension吗? manifest.json 文件的存在意味着它是 WebExtensions 插件,而不是所谓的 Bootstrapped 插件。引导加载项没有有 manifest.json 文件,除非您为自己的特定非标准目的创建了一个。
-
可能会有一些混淆,因为WebExtensions 和Add-on SDK 扩展在功能上都是重新启动(它们不需要重新启动)。但是,它们不被称为Bootstrapped or Restartless extensions。是的,Mozilla 在为不同类型的附加组件选择名称方面本可以做得更好。它们是这样的,因为它们随着时间的推移而发展,一个接一个。
标签: javascript html firefox firefox-addon firefox-addon-webextensions