我需要让我的网站与Chrome兼容。我有TextBox控件适配器,匹配所有浏览器(refID ='default'),不幸的是它打破了chrome中的页面。最简单的解决方案是继续为除chrome之外的所有浏览器使用旧适配器。我的.browser文件如下所示:
<browsers>
<browser id="Chrome" parentID="Safari1Plus">
<identification>
<userAgent match=".+Chrome/(?'version'(?'major'\d+)\.(?'minor'\d+\.\d+).\d+)" />
</identification>
<capabilities>
<capability name="browser" value="Chrome" />
<capability name="majorversion" value="${major}" />
<capability name="minorversion" value="${minor}" />
<capability name="version" value="${version}" />
</capabilities>
<controlAdapters >
<adapter controlType="System.Web.UI.WebControls.TextBox" adapterType="ChromeTextBoxControlAdapter" />
</controlAdapters>
</browser>
<browser refID="Default">
<controlAdapters>
<adapter controlType="System.Web.UI.WebControls.TextBox" adapterType="TextBoxControlAdapter" />
</controlAdapters>
</browser>
</browsers>
为了测试purpouses我设置TextBoxControlAdapter只渲染'DEFAULT'文本,ChromeTextBoxControlAdapter只渲染'CHROME'文本。
是否可以通过这种方式配置自适应渲染?
由于
答案 0 :(得分:0)
我也遇到了这个问题,根据我的初步调查,我认为“浏览器refID”节点不会继承“浏览器ID /父ID”节点之类的设置。
似乎.NET只应用来自匹配的第一个 refID 节点的信息,然后忽略其余的信息。匹配顺序是从根(即ID =“默认”)到更具体(例如ID =“IE8”)。
connect.microsoft.com 上有一个相关的错误,它支持这个理论。 link
我的建议是仅将自定义设置应用于 refID 没有任何祖先的节点。
不幸的是,这意味着您必须复制更多配置并处理代码中的默认值。