我有一个包含Silverlight对象标记的div。从一些用户操作的代码(单击按钮)我将Div扩展到浏览器总窗口。我是通过Jquery addClass和Remove类来完成的。在这些类中,差异是位置绝对,高度宽度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 { public partial class MainPage:UserControl { 公共MainPage() { 的InitializeComponent(); Deployment.Current.Dispatcher.BeginInvoke(()=&gt; HtmlPage.Window.Alert(“Application Loaded”)); }
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;
}
}
}
答案 0 :(得分:0)
在firefox中,当您隐藏包含SL应用程序的DOM元素时,SL应用程序将重新初始化。我们使用jQuery删除对象标签,然后隐藏元素:
$(“#element object”)。remove(); $( “#元件”)隐藏();
...在执行show()之前,您必须重新创建SL对象标记。当使用$ .ajax加载的内容替换DOM元素时,上面也适用。
如果我不正确理解你的问题,请纠正我。 看一个问题here ......我猜它是相同的/相关的......