Firefox:window.onbeforeunload确实有效,除非我打开和关闭开发人员工具一次

时间:2016-07-20 07:48:59

标签: javascript firefox

我正在使用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仍然无效。可能是什么问题?

1 个答案:

答案 0 :(得分:4)

根据文档发生这种情况,因为除非页面已与

进行交互,否则firefox不会显示提示

https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload

因此没有必要打开一次开发人员工具,但是必须与页面进行一些交互,就像点击页面一样。