无法将<dialog>元素置于全屏模式

时间:2019-02-19 15:44:43

标签: javascript dialog html5-fullscreen

我似乎无法使用-Hotels -ID -location : "USA" -ID1 -location : "USA" -ID2 -location : "CANADA" 在Google Chrome上将元素置于全屏模式。我收到“全屏错误”的TypeError消息,并没有那么大的帮助。无论我使用ArrayList loca = new Array`enter code here`List<>(); 还是mRef.addValueEventListener(new ValueEventListener(){ @Override public void onDataChange(Datasnapshot dataSnapshot){ for(DataSnapshot postSnapshot : dataSnapshot.getChildren()) { Hotels hotels = postSnapshot.getValue(Hotels.class); String location = hotels.getLocation(); String lo = setLocation(location); loca.add(new Hotels(lo)); HashSet<Hotels> hs = new HashSet<>(loca); loca.clear(); loca.addAll(hs); ,或者都不使用,都会发生这种情况。我通常给模式requestFullscreen()直到它打开,但我也尝试不使用这种样式。

其他浏览器允许全屏显示。这至少包括支持showModal但不支持show的Firefox和不支持display: none元素的Internet Explorer。我一直在使用的npm软件包modal.show在这些浏览器上添加了部分modal.showModal支持,但不影响哪个浏览器允许或拒绝全屏显示行为。

规范中的错误部分吗?我没有找到太多有关该错误的信息,尽管我承认我不太精通阅读浏览器规范,但两个规范似乎都允许这种行为。其他浏览器是否由于未完全实现对话框功能而允许全屏显示,或者这是Chrome中的错误?

1 个答案:

答案 0 :(得分:1)

在阅读规范时,我发现该元素不应该支持全屏模式。规范特别指出:

  

requestFullscreen(options)方法在调用时必须运行这些   步骤:

     
      
  1. 如果以下任一条件为假,则将error设置为true:

         
        
    • 待处理的命名空间是HTML命名空间,待处理的命名空间是SVG svg或MathML数学元素。 [SVG] [MATHML]

    •   
    • 待定不是对话框元素。

    •   
    • 全屏元素就绪检查未决返回true。

    •   
    • 支持全屏。

    •   
    • 允许该算法请求全屏显示。

    •   
  2.   

如果任何人都可以提供有关为什么存在此限制的更多信息,我将非常感兴趣。这似乎不是一个合理的限制,因为dialog元素似乎是量身定制的,可以在全屏模式下很好地工作,这是一种将对话框与页面进一步隔离的方法。