Расширяя Div в Firefox, загружая Xap внутри него дважды - PullRequest
1 голос
/ 08 октября 2009

У меня есть div, который содержит тег объекта Silverlight. Исходя из кода некоторых действий пользователя (нажмите на кнопку), я расширяю окно браузера Div до общего. Я делаю это через Jquery addClass и Remove class. В этих классах разница в абсолютной позиции, ширине по высоте 100% и увеличенном z-индексе.

Хорошо работает в Ie7 и IE8. Но во время работы через FF он перезагружает Xap при этом. В чем может быть причина? а какое решение?

Спасибо.

Редактировать: После некоторого расследования кажется, что причина в том, что позиция: абсолютная. Изменение положения с относительного на абсолютное создает проблему. Также, как только я перехожу из нормального режима в полноэкранный режим, то в нормальный режим. Затем его расширение не загружает его дважды.

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

SilverlightApplication1

<style type="text/css">
    .slhost
    {
        width: 642px;
        height: 500px;
        position: relative;
    }
    .bigsl
    {
        width: 100%;
        height: 100%;
        position: absolute;
    }
</style>

<script src="jquery-1.3.2.min.js" type="text/javascript"></script>

<script type="text/javascript">
    function openOverlay() {
        $("#silverlightControlHost").addClass("bigsl");
        $("#silverlightControlHost").removeClass("slhost");
    }
    function closeOverlay() {
        $("#silverlightControlHost").removeClass("bigsl");
        $("#silverlightControlHost").addClass("slhost");
    }
</script>

<UserControl x:Class="SilverlightApplication1.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480">


< Grid x:Name="LayoutRoot" Background="Red" MouseLeftButtonDown="LayoutRoot_MouseLeftButtonDown">



</Grid>

using System.Windows;

с использованием System.Windows.Controls; использование System.Windows.Input; использование System.Windows.Browser;

пространство имен SilverlightApplication1 { открытый частичный класс MainPage: UserControl { public MainPage () { InitializeComponent (); Deployment.Current.Dispatcher.BeginInvoke (() => HtmlPage.Window.Alert («Приложение загружено»)); } * * Тысяча двадцать-один

    private bool _flip;
    private void LayoutRoot_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
        if (_flip)
        {
            Deployment.Current.Dispatcher.BeginInvoke(() => HtmlPage.Window.Invoke("closeOverlay", null));
        }
        else
        {
            Deployment.Current.Dispatcher.BeginInvoke(() => HtmlPage.Window.Invoke("openOverlay", null));
        }
        _flip = !_flip;
    }
}

}

1 Ответ

0 голосов
/ 08 октября 2009

В Firefox, когда вы скрываете элемент DOM, содержащий приложение SL, приложение SL инициализируется заново. мы использовали jQuery для удаления тега объекта, а затем скрыли элемент:

$ ("# элемент object"). Remove (); $ ( "# Элемент") скрыть ();.

... перед тем, как сделать show (), вам нужно заново создать тег объекта SL. Выше также применимо при замене элемента DOM содержимым, загруженным в $ .ajax.

Пожалуйста, поправьте меня, если я не правильно понимаю ваш вопрос .. Смотрите один вопрос здесь ... Я думаю, что это то же самое / связано ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...