在程序操作过程中偶尔会出现如标题所示的错误,开始一直不知道怎么回事,后来仔细调试了下,发现是在浏览器可以点击“前进/后退”按钮时,同时按住shift+鼠标滚轮滚动会出现这个Bug。
上网查找了下,有些浏览器Shift+鼠标滚轮滚动就是代表“前进/后退”快捷键。而silverlight出此错误是因为用了导航Frame,而且silverlight默认与浏览器的前进和后退按钮集成,即此时点击的前进和后退就相当于对程序中的Frame进行了前进/后退操作,而用
Frame.Source这种赋值方式,是不支持前进后退的,会报错,所以,这就是问题所在。
解决的方案:
在程序的.html和.aspx中把“<iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;0px;border:0px"></iframe>”这句话去掉就好了,这句话就是与前面说的silverlight与浏览器集成前进/后退按钮有关的地方,去掉就好了。