我正在使用Firefox ESR 45.2,并且我使用window.onbeforeunload让用户可以选择离开页面或留在页面上,当他离开窗口时。这是我的代码:
<ListBox SelectionMode="Multiple" ItemsSource="{Binding CashTypes}" IsSynchronizedWithCurrentItem="True">
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}" BasedOn="{StaticResource {x:Type ListBoxItem}}">
<Setter Property="IsSelected" Value="{Binding Mode=TwoWay, Path=(local:CashTypeEnumViewModel.IsSelected)}"/>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding CashType}"></TextBlock>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
但问题是在Firefox中,除非我打开开发人员工具一次然后关闭它,否则代码不起作用。我也看了这个问题
Why does JavaScript only work after opening developer tools in IE once?
我删除了所有console.logs。但是window.onbeforeunload仍然无效。可能是什么问题?
答案 0 :(得分:4)
根据文档发生这种情况,因为除非页面已与
进行交互,否则firefox不会显示提示https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload
因此没有必要打开一次开发人员工具,但是必须与页面进行一些交互,就像点击页面一样。