看起来您正在使用 GXT(来自Gray
inherits 语句),但实际上并未继承GXT
自身(setup.txt 中的第三步)。这不一定是一件坏事,但避免这种说法意味着您正在跳过一些限制可能排列数量的设置。在你的行之前添加这个Gray
:
<inherits name='com.sencha.gxt.ui.GXT'/>
然后,除了user.agent
=之外gecko1_8
,添加这个代替(或除此之外)以限制 GXT 排列(更多内容见下文):
<set-property name="gxt.user.agent" value="gecko1_9" />
(请注意,我们引用 Gecko 1.9 而不是 1.8,因为 1.8 中至少存在一个错误,我们有一个解决方法,在 1.9 中不需要。)
为什么 GXT 会添加额外的属性,而不是使用user.agent
?
事实证明,user.agent
不能轻易扩展 - 该系统对现有声明fallback
没有任何帮助。CssResource
这意味着如果 GXT 添加了 ie10 排列(它在 3.0 中做了),或者想要有一个独特的 ie7 排列(而不是与 ie6 混为一谈),或者单独的 Chrome 与 Safari 排列(Chrome 缩放问题有人吗?),我们可能破坏项目中的现有代码。
此外,GXT 添加了一个 'os' 属性来让我们处理平台问题。这可以是“mac”、“linux”或“windows”(或 3.0.3 之后的“unknown”,用于处理 Solaris、Chrome OS 等)。没有很多情况需要这样做,但一个例子包括本机 OS X 复选框,一旦您单击它们就会模糊,这与 windows、linux 或 mac 上的 firefox 不同。
user.agent
如果我设置了,为什么我不需要设置gxt.user.agent
?
由于 GXT 用户代理属性集比 GWT 用户代理更广泛,我们基于 GXT 用户代理设置使用以下几行设置 GWT 用户代理:
<!-- From /com/sencha/gxt/core/Core.gwt.xml about line 110 -->
<!-- Restrict the permutation explosion -->
<set-property name="user.agent" value="ie6">
<any>
<when-property-is name="gxt.user.agent" value="ie6" />
<when-property-is name="gxt.user.agent" value="ie7" />
</any>
</set-property>
<set-property name="user.agent" value="ie8">
<when-property-is name="gxt.user.agent" value="ie8" />
</set-property>
<set-property name="user.agent" value="ie9">
<any>
<when-property-is name="gxt.user.agent" value="ie9" />
<when-property-is name="gxt.user.agent" value="ie10" />
</any>
</set-property>
<set-property name="user.agent" value="gecko1_8">
<any>
<when-property-is name="gxt.user.agent" value="gecko1_8" />
<when-property-is name="gxt.user.agent" value="gecko1_9" />
</any>
</set-property>
<set-property name="user.agent" value="safari">
<any>
<when-property-is name="gxt.user.agent" value="safari3" />
<when-property-is name="gxt.user.agent" value="safari4" />
<when-property-is name="gxt.user.agent" value="safari5" />
<when-property-is name="gxt.user.agent" value="air" />
<when-property-is name="gxt.user.agent" value="chrome" />
</any>
</set-property>
<set-property name="user.agent" value="opera">
<when-property-is name="gxt.user.agent" value="opera" />
</set-property>
GXT.gwt.xml如何限制排列的数量,我自己怎么做?
13 个浏览器属性乘以 3 个操作系统应该会给出大约 39 种排列,除非采取了一些措施来限制这些属性。默认情况下,GXT.gwt.xml 将这些限制为具有以下几行的基本 6 种排列:
<collapse-property name="user.agent.os" values="*" />
<collapse-property name="gxt.user.agent" values="air, safari*, chrome" />
<collapse-property name="gxt.user.agent" values="ie6, ie7" />
<collapse-property name="gxt.user.agent" values="ie9, ie10" />
<collapse-property name="gxt.user.agent" values="gecko*" />
通过不继承 GXT,您有机会设置自己的排列限制。如果您不想自己设置这些,请继续继承 GXT 本身。更多信息<collapse-property>
,请<collapse-all-properties />
访问http://code.google.com/p/google-web-toolkit/wiki/SoftPermutations