6

Mam ModalPopupExtender z AjaxControlToolkit, który działa poprawnie w Firefox, Chrome i IE8, ale kiedy uruchomię go w trybie zgodności IE8, pojawia się za zawartość mojej strony, a nie na górze.
popup jest w formancie użytkownika renderowanym przez stronę główną. To, co myślę, dzieje się, to jest pojawianie się przed treścią strony głównej, ponieważ zawartość strony głównej (mój nagłówek i paski boczne) jest wyszarzona, ale symbole zastępcze zawartości wyświetlają się przed moim wyskakującym okienkiem. Znalazłem w internecie, że sugerowane rozwiązanie zmieniając deklaracji DOCTYPE na stronie wzorcowej do:ModalPopupExtender nie wyświetla się przed wszystkim w trybie zgodności IE7/IE8

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

Ale miałem już, że dokładna deklaracja i nadal mieć problem pozycjonowania. Oto kod popup:

<cc1:ModalPopupExtender ID="ModalPopupExtender1" runat="server" 
    TargetControlID="lnkbtnDealerID" 
    PopupControlID="pnlPopup" 
    BackgroundCssClass="modalBackground" 
    DropShadow="true" 
    OkControlID="OkButton" 
    CancelControlID="CancelButton" 
    OnOkScript="" 
    > 
</cc1:ModalPopupExtender> 

    <asp:Panel ID="pnlPopup" runat="server" CssClass="modalPopup" Style="display: none"  Width="233px"> 
    <p>Are you sure? Your current shopping cart is valid only for the current Dealer ID.  Switching Dealer IDs will reset your cart according to the new Dealer ID chosen.</p> 

    <br /> 
    <div align="center"> 
     <asp:Button ID="OkButton" runat="server" Text="Ok" /> 
     <asp:Button ID="CancelButton" runat="server" Text="Cancel" /> 
    </div> 
    </asp:Panel> 

a odpowiednim CSS:

.popupControl { 
    background-color: white; 
    position:absolute; 
visibility:hidden; 
border-style:solid; 
border-color: Black; 
border-width: 2px; 
} 

.modalBackground { 
background-color:Gray; 
filter:alpha(opacity=70); 
opacity:0.7; 
} 

.modalPopup { 
background-color:white; 
border-width:1px; 
border-style:solid; 
border-color:Gray; 
padding:3px; 
width:250px; 
} 
+0

miałem problem w IE8 z moich pop-upy nie pojawiały się przede wszystkim pojemników dominujących były zdefiniowane w. Niektóre elementy bez względu na z-index był zawsze będzie na wierzchu (trochę jak w IE6 z rozwijanej).W moim przypadku była to tylko ręka pełna kontroli, którą po prostu ukrywam, kiedy pojawia się wyskakujące okienko. Nie jestem pewien, o co mi chodzi, ale pomyślałem, że będę się podzielał – JoshBerke

+0

To brzmi podobnie do tego, co mam, ale byłoby dziwnie, gdybym ukrywał zawartość mojej głównej strony, gdy robię popup. – fr0man

Odpowiedz

0

To może być rozwiązanie można użyć:

Problem in Z-index of menu and ajax ModalPopupExtender in ASP.net

I zostały uruchomione w tej kwestii zbyt ... ale na wstępnym produkcie, którego tak naprawdę nie zamierzaliśmy wspierać w IE6/7. Ale po prostu to wypróbowałem. Upewnij się, że wszystkie elementy div, które trzymają kontrolki w podręcznym wyskakującym okienku, mają bardzo wysoki indeks z-index (na przykład 10001).

+0

To było obiecujące, ale nie działało. Umieściłem indeks z i wokół wszystkiego, co mogłem i nadal nie pojawia się przed moją treścią zastępczą. – fr0man

1

Po prostu znalazłem twoje ogłoszenie podczas próby rozwiązania tego samego problemu. Dla mnie wyśledziłem go do znacznika div o nazwie mainBody, w którym zawarta jest cała zawartość strony. Klasa CSS, która kontroluje ten element div, ma względne położenie, ale nie ma indeksu Z. Jak tylko ustawiam z-index na -1 dla mainBody mój modalPopup działał idealnie w IE7.

Mam nadzieję, że to pomoże ?!

1

Można ustawić tylko indeks Z w IE dla div elementu nadrzędnego, w którym się znajdujesz. Element div wyższego rzędu zawsze będzie renderowany na wierzchu dolnego elementu div. Rozwiązałem problem poprzez umieszczenie Modualwindow Div bezpośrednio za znacznikiem. Jeśli to pierwszy div, zawsze jest na wierzchu.

Henrik

0

Jeśli używasz ModalPopupExtender (AjaxToolkit 4.1.50927.0 i .NET 4.0.30319) w projekcie ASP.NET, może napotkać ten sam problem z IE7 i IE8. Okno wyskakujące zostanie całkowicie wyrenderowane w IE 9, ale nie w IE7 & IE8. W takim przypadku spróbuj usunąć AnimationExtender (zanikanie) dla tego ModalPopupExtender działa poprawnie. Sprawdź wersję przeglądarki i wyrenderuj kod animacji za pomocą JS dla nowszych przeglądarek, które mogą obsłużyć efekt zanikania lub nie używaj animacji, jeśli przeglądarka jest, powiedzmy, IE7.

1

Chciałbym dodać, że indeks Z jest rzeczywiście problemem dla tych, którzy działają w tym widoku zgodnym z IE 10, który domyślnie działa w trybie pracy IE7 w sieci lokalnej.

Użyłem użyłem z-index: -1 dla html i body, a następnie musiałem przejść do z-index: 100 dla innych pojemników. Wyskakujące klasy mają numer z-index: 999999; Musisz dostosować się do swojej witryny.

Powiązane problemy