aem*_*aem 5 gwt sprite internet-explorer-7 internet-explorer-6
我正在尝试在我的GWT应用程序中使用ClientBundle来使多个图像作为单个文件发送.我这样声明了这个包:
public interface MyResources extends ClientBundle {
public static final MyResources INSTANCE = GWT.create(MyResources.class);
@Source("icon1.png") ImageResource icon1();
@Source("icon2.png") ImageResource icon2();
}
Run Code Online (Sandbox Code Playgroud)
这在Firefox和IE8的伟大工程,但在IE7(或更早)整个精灵代替我原来的图像之一的显示出来 - 那就是,ICON1旁边旁边ICON3到ICON2,等等.在使用IE8-as-IE7模式或兼容性视图的IE8开发人员工具中,我可以看到它显示的文件名如26BEFD2399A92A5DDA54277BA550C75B.cache.png,这是我所期望的.
那么有没有办法让GWT图像精灵在IE7和更低版本中运行?如果没有,有没有办法优雅地降级,所以其他浏览器的用户获得spriting的加速,IE7和IE6用户获得看起来正确但速度较慢的东西?
编辑:该客户端包开发者指南具有使用ClientBundle和@sprite的讨论,并说:"对IE6的支持是不是在这种格式是可行的,因为对DOM结构变化是实行必要的'窗口’效应一旦它的可能.为了区分user.agent中的ie6和ie7,我们可以重新考虑对ie6的支持.在当前的实现中,ie6代码将无法正确呈现,尽管这是一个纯粹的装饰性问题.这是在我的情况下发生了什么,有没有办法解决它?显示所有图像"纯粹是一个美容问题",但它是一个非常严重的问题.
编辑2:这是我如何使用图像:
public class MyTabHeader extends Composite {
@UiField Image icon;
public MyTabHeader(String iconPath) {
initWidget(uiBinder.createAndBindUi(this));
this.icon.setUrl(iconPath);
}
}
public class MyTabPanel extends TabPanel {
public MyTabPanel() {
String icon1 = MyResources.INSTANCE.icon1().getURL();
MyTabHeader tabHeader1 = new MyWidget(icon1);
Widget tabContent1 = new HTML("Content 1");
add(tabContent1, tabHeader1);
String icon2 = MyResources.INSTANCE.icon2().getURL();
MyTabHeader tabHeader2 = new MyWidget(icon2);
Widget tabContent2 = new HTML("Content 2");
add(tabContent2, tabHeader2);
}
}
Run Code Online (Sandbox Code Playgroud)
使用Image.setUrl(MyResources.INSTANCE.icon1().getUrl())是个问题.
您应该使用Image.setResource(MyResources.INSTANCE.icon1())
归档时间: |
|
查看次数: |
3409 次 |
最近记录: |