Próbuję użyć ClientBundle w mojej aplikacji GWT, aby wiele obrazów zostało wysłanych jako pojedynczy plik. Oświadczam wiązka tak:Czy można używać ikonek GWT przy użyciu ImageBundle do pracy w IE7 i IE6?
public interface MyResources extends ClientBundle {
public static final MyResources INSTANCE = GWT.create(MyResources.class);
@Source("icon1.png") ImageResource icon1();
@Source("icon2.png") ImageResource icon2();
}
Działa to doskonale w Firefox i IE8, ale w IE7 (i wcześniej) cała ikonki pojawia się w miejscu jednego z moich oryginalnych obrazów - czyli icon1 jest obok icon2 obok ikony3 i tak dalej. W narzędziach programistycznych IE8 używających trybu IE8-as-IE7 lub widoku zgodności widzę, że pokazuje obraz z nazwą pliku, np. 26BEFD2399A92A5DDA54277BA550C75B.cache.png, czego oczekiwałem.
Czy istnieje sposób na to, aby ikonki obrazu GWT działały w IE7 i niżej? Jeśli nie, czy istnieje jakiś sposób, aby zręcznie się pogarszać, aby użytkownicy innych przeglądarek mogli przyspieszyć proces spritingu, a użytkownicy IE7 i IE6 otrzymają coś, co wygląda dobrze, ale jest wolniejsze?
Edit:Client Bundle Developer's Guide ma dyskusji korzystania ClientBundle i @sprite i mówi: „Wsparcie dla IE6 nie jest wykonalne w tym formacie, ponieważ zmiany strukturalne DOM są niezbędne do wdrożenia«okienkowy»efekt. Po rozróżnieniu ie6 i ie7 w user.agent możemy ponownie przejrzeć wsparcie dla wersji 6. W obecnej implementacji kod ie6 nie będzie poprawnie renderowany, chociaż jest czysto kosmetyczny. " Czy to się dzieje w moim przypadku i czy istnieje sposób na obejście tego? Pokazywanie wszystkich zdjęć jest "czysto kosmetycznym problemem", ale jest dość surowe.
Edit 2: Oto jak korzystać z obrazów:
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);
}
}
Dzięki, to się udało! – aem