我正在尝试为我的项目设置固定网站功能。麻烦的是我想让任务成为javascript动作而不是加载新页面。原因是该网站只能在一个窗口中工作。
我尝试添加以下META标记:
<meta name="msapplication-task" content="name=Test Action;
action-uri=javascript:ui('test',8);icon-uri=/img/icons/test.ico" />
然而,这导致任务根本不出现。 (使用普通的URL使它显示得很好)
有没有办法做到这一点?我能想到的最好的是哈希并检查hashchange
事件,但这不起作用,因为它在窗口的新选项卡中打开...
答案 0 :(得分:0)
我担心这不受支持,因为动作列表是为启动应用程序而设计的,而非内部导航。
如果您真的想要实现它,您可以打开一个新窗口,通过Web套接字向服务器发送消息,让服务器也通过Web套接字将该消息转发到应用程序窗口。但这是一种非常黑客的方法,仅适用于IE10。
答案 1 :(得分:0)
可以使用哈希解决此问题。通过将action-uri
设置为JavaScript可读的内容,JS可以读取它,处理指令,然后清除哈希以准备下一个任务。
这样做的好处是即使窗口尚未打开也能正常工作,因为JS也会在第一次加载时读取哈希值。
要抓住的是将window-type=self
添加到内容中。