javascript - jQueryUI选项卡和Firefox:getBBox损坏了吗?

标签 javascript firefox svg jquery-ui-tabs

FF 3.6中几乎完全开发了一个前端。它可以在IE9(即使有很多SVG),Opera和Webkit中完美运行,但在FF9中则完全损坏。我花了一整天的时间调试它,好像getBBox一直在中断。可能存在两个单独的问题,都与在包含多个文本元素的组上获得一个边界框,旋转文本或散布在多行文本上有关。

其他人看到了吗?我必须说,我对此感到非常生气。 Bugzilla中什么都没有。如果他们没有这么简单的发布周期,我很想回去尝试一个旧版本,但是将其丢弃似乎很容易...

编辑

对于通过这种方式来的任何人来说,这就是答案。基本上,这与jQuery UI选项卡,display:none和维计算有关,但问题是jqueryui.com(here)的解决方法不完整。

1-getBBox问题通常是由于某个地方的display:none,但是我的代码中没有明确的display:none
2-FireFox比其他浏览器更容易受到显示/ getBBox问题的影响。奇怪的是,Win7上的FF 9.0.1优于XP上的9.0.1

3-在隐藏的选项卡(或隐藏的任何内容)中进行尺寸计算的标准方法是在屏幕外显示(请参见上面的链接),而不是应用display:none
4-如果没有上述链接的解决方法,则FF会引发异常,Chrome浏览器输入的数字错误,Opera不在乎等

5-但是上述解决方法(.ui-tabs-hide的屏幕外显示)是不够的。如果这样做,但是在进行尺寸计算后选择选项卡(tabs('select')),则FF仍然会出错(但不会引发异常)。 IE9,Opera和Webkit都可以。

6-我对FF 3.6错了-3.6 / Linux的行为似乎与FF 9.0.1 / XP相同

7-缺少深入研究制表符代码的一种解决方法,就是简单地在进行尺寸计算之前选择制表符。对我来说很好,但对于大多数人来说可能会挫败练习的重点。

更改了主题以提及选项卡。

最佳答案

是时候帮助您变得更有条理,并控制发生了什么!使用多个版本的Firefox可能会很麻烦,尽管这可以帮助您解决所有问题。在一台有能力的计算机上,这可能需要一个小时的时间,但是您将可以控制计算机,并且通过使计算机保持最新状态并组织得井井有条,可以更轻松地完成工作。

查找基于Gecko的错误的第一个地方是Bugzilla

我不能使用SVG,尽管我可以告诉您Mozilla一直在努力地更新标准,尽管没有宽限期(许多DOM 3/4更改都有诸如“kill isSameNode”之类的错误)。

除了政治之外,您还严重需要使用单独的安装和配置文件。为此,您需要一些关键的事情...

保留离线安装程序

保持软件正常工作的安装程序(这意味着而不是 Internet下载器)非常重要。

您可以获取一些稳定的发行版,但请记住,Mozilla所做的很多事情表明建议进行一些药物测试,方法是转到Firefox Releases页面,然后搜索“Firefox旧版本”以找到旧的安装程序。

安装您计划进行测试的版本

  • C:\ MEDIA \ INTERNET \ Mozilla Firefox 3.6 \
  • C:\ MEDIA \ INTERNET \ Mozilla Firefox 4.0 \
  • C:\ MEDIA \ INTERNET \ Mozilla Firefox 5.0 \
  • C:\ MEDIA \ INTERNET \ Mozilla Firefox 6.0 \
  • C:\ MEDIA \ INTERNET \ Mozilla Firefox 7.0 \

  • 等等...

    禁用自动升级

    自动升级会适得其反,无法正确测试Gecko渲染引擎的不同版本。

    您正在测试渲染引擎,浏览器版本不正确吗?

    壁虎/火狐
    KHTML / Konqueror(带有KDE桌面的Linux发行版)
    普雷斯托/歌剧
    三叉戟/ Internet Explorer
    WebKit / Chrome / Safari(WebKit本质上是两者之间的复杂分支)

    熟悉Firefox的配置文件。

    设置快捷方式

    如果您使用Windows,则您的主Firefox快捷方式应该看起来像这样...
    "C:\MEDIA\INTERNET\Mozilla Firefox 8.0\firefox.exe" -P "Mozilla Firefox 8.0"
    

    这将自动启动安装了该版本名称的配置文件。迁移到较新版本时,您将需要更新它。我强烈建议您使用企业版,该版本每54周而不是42天更新一次。我坦白地说,我维护了其他配置文件,但更新Firefox以获得对杂项CSS3自动换行属性和专有的Microsoft JScript方法的支持并不是一件容易的事,该方法最初对于应用程序级编程不可靠。

    如果为此(或下一步)存在不带该名称的配置文件,则将显示配置文件管理器,您将有机会自己创建它。

    其他版本

    其他版本需要的捷径略有不同...

    版本/配置文件组合

    要快速加载版本/配置文件组合,请使用以下...
    "C:\MEDIA\INTERNET\Mozilla Firefox 7.0\firefox.exe" -no-remote -P "Mozilla Firefox 7.0"
    

    -no-remote使您可以同时运行多个版本的Firefox。您可以多次使用Firefox的同一副本,但是只能在给定的实例中使用每个配置文件。

    强制Firefox使用配置文件管理器

    强制Firefox始终向您显示配置文件管理器(如果您要选择多个配置文件,例如,由于我有Comcast,他希望我在毫无值(value)的“美国”电视上投入金钱,而不是向我提供可靠的信息流,手动下载YouTube视频,所以我有专门的个人资料,可以在其中下载视频并从下载窗口观看它们,这会浪费我的主要个人资料中的空间)。这些快捷方式应如下所示:
    "C:\MEDIA\INTERNET\Mozilla Firefox 8.0\firefox.exe" -no-remote -ProfileManager
    

    ...然后-no-remote再次打开一个与其他实例分开的Firefox新实例。

    管理个人资料

    管理配置文件以使其保持整洁有序并不困难。再次在Windows上,您会在以下位置找到配置文件文本文件(在进行修改之前,需要复制该文件):
    C:\documents and settings\YOUR_WINDOWS_USER_NAME\Application Data\Mozilla\Firefox\profiles.ini
    

    我强烈建议您按产品/版本命名您的个人资料文件夹(例如“Mozilla Firefox 7.0”)。

    通过保留单独的配置文件,您可以保留您的个人设置/扩展名/等,并确保它们仍在较旧的版本中仍然有效。如果Firefox 3.6(很多用户仍在使用)中出现问题,并且在较新版本中未出现问题,则您的扩展仍会在该版本中运行,而如果几年后您外出寻找该扩展,则可能是兼容版本不可用。您可以将扩展文件从.xpi重命名为.zip,解压缩install.rdf文件,并破解最小/最大兼容版本,尽管这对我而言已100%起作用。

    Firefox 1.5和更高版本可与-no-remote一起使用,我认为Firefox 1.0有一个不同的命令参数。通常,我主要是通过Firefox 3.6和最新版本进行测试,以测试Gecko 1.8+(Firefox 1.5)。

    个人资料之间同步

    如果您不希望每42天更新一次Firefox,就会出现新版本,如果您不希望每42天更新一次Firefox(10.0版将是企业级版本,并且在我认为是54周的时间内仍将受支持)。我总是重新创建配置文件,以防止垃圾从旧版本传递到新版本,尽管您可以使用sync来获取密码,也可以导出/导入书签。

    备份和还原

    如果这样做听起来很费力,则可以通过对硬盘驱动器进行镜像来备份所有自定义设置。 Macrium Reflect有一个免费版本,您可以对硬盘分区(可能是特定的文件夹,不确定)进行镜像。我花了不到半小时的时间将一个驱动器镜像到另一个驱动器,然后花了不到20个小时来还原镜像。如果我的系统永久蓝屏,我可以在大约半小时内将所有内容还原到最后一个图像或镜像(而不是一个小时的安装,数小时的重新安装,设置等)。

    希望这可以帮助您使用较新的版本进行更舒适的测试,而又不会感觉到您始终被迫处理更新,同时仍然能够测试多个版本。

    重要!如果您不希望每42天更新一次所有内容(对Firefox进行任何有意义的更改是不可能的),我强烈建议您使用Firefox的扩展发行版支持版本作为您的主要副本,该版本支持54周。您仍然可以打开较新的琐碎版本,然后在54周后迁移到下一个主要版本,而在此之前的时间实际上会使您有时间迁移到较新版本。您可以下载扩展发行支持版本here

    关于javascript - jQueryUI选项卡和Firefox:getBBox损坏了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8840004/

    相关文章:

    javascript - 动态调整 CKEditor 5 中粘性工具栏的位置

    javascript - 使用 ajax 调用提交表单后 Bootstrap Modal 未关闭?

    javascript - 重置原始值约 :config firefox via javascript or imacros

    svg - 如何使内联 SVG 始终填满屏幕?

    javascript - 如何在调整大小时使光标与控制点同步?

    javascript - 用函数交换 img src (JavaScript)

    javascript - 匹配带有前导或尾随星号的行的正则表达式

    html - 强制浏览器忽略 HTML 5 特性

    javascript - 为什么我的 onclick 事件没有在 Firefox 中注册?

    svg - 如何在非根元素上注册按键事件监听器?