积极答复者
Metro : Html5+javascript 通过app bar 打开另个一个页面的问题

问题
答案
-
嗯是这样的,我们可以做个实验,在default.html 中加一个AppBar, 然后一样导航到你的Help.html, 这个时候AppBar没有消失,因为这个AppBar是属于default page的,所以导航好了不会消失。这个时候只要有AppBar在,Back按钮无法响应 hover 效果。为什么,在Debug的时候看下DOM Explorer:
在App Bar显示了之后,有一个 section class为win-appbarclickeater的显示出来,他的范围是整个页面大小,由于他的显示阻止了页面中其他部分的点击。包括按钮的点击以及超连接的,他们的hover效果都没有了,因为鼠标没有直接在他们上方,中间多了一个section。
同样,如果我们将AppBar放回一个 PageControl 之后,点击它导航后,其实default页面的 section class="win-appbarclickeater" 还是display:block 并没有隐藏。所以导致了页面已经导航,但是页面无法直接点击,需要再多点一次让 这个section 消失才行。
Bob Bao [MSFT]
MSDN Community Support | Feedback to us
- 已标记为答案 Hardy.Lu 2012年9月4日 0:45
全部回复
-
-
本来我以为是我实现上的问题,后来我做了个页面,
1.通过app bar 中的button 和页面中的button 同时打开同一个空的页面,还是会出现一样的问题。
在ready中添加
document.getElementById("cmdHelp").addEventListener( "click", DoClickHelp, false); document.getElementById("btnHelp").addEventListener( "click", DoClickHelp, false);
调用函数
function DoClickHelp() { WinJS.Navigation.navigate("/pages/help.html"); }
-
嗯是这样的,我们可以做个实验,在default.html 中加一个AppBar, 然后一样导航到你的Help.html, 这个时候AppBar没有消失,因为这个AppBar是属于default page的,所以导航好了不会消失。这个时候只要有AppBar在,Back按钮无法响应 hover 效果。为什么,在Debug的时候看下DOM Explorer:
在App Bar显示了之后,有一个 section class为win-appbarclickeater的显示出来,他的范围是整个页面大小,由于他的显示阻止了页面中其他部分的点击。包括按钮的点击以及超连接的,他们的hover效果都没有了,因为鼠标没有直接在他们上方,中间多了一个section。
同样,如果我们将AppBar放回一个 PageControl 之后,点击它导航后,其实default页面的 section class="win-appbarclickeater" 还是display:block 并没有隐藏。所以导致了页面已经导航,但是页面无法直接点击,需要再多点一次让 这个section 消失才行。
Bob Bao [MSFT]
MSDN Community Support | Feedback to us
- 已标记为答案 Hardy.Lu 2012年9月4日 0:45
-
-
看这篇 http://adamkinney.com/blog/2012/06/18/why-your-winjs-app-may-navigate-back-when-a-textbox-is-in-focus-and-you-hit-enter/
Bob Bao [MSFT]
MSDN Community Support | Feedback to us
- 已建议为答案 Jie BaoModerator 2012年9月3日 9:33