zoukankan      html  css  js  c++  java
  • Local 和 Web Contexts的学习

    Programming Windows 8 Apps with HTML, CSS and JavaScript 2Ed 77页:

    1. Metro 应用的主页(就是启动后的第一屏)总是运行在Local Context下的,而且通过<a href>标记或者document.location要转到的其他页面的必须也是在Local Context 下的。但是内嵌的iframe的页面,可以使Local的也可以是Web Context的。

    2. 一个Web Context的页面,只能内嵌Web Context 的iFrame。

    所以,作者有了如下总结:

    假如源页面是Local Context的,那么

    • <iframe src="ms-appx:///" 这个是合法的,因为Local Context里面允许2种类型的iFrame。
    • <iframe src="ms-appx-web:///" 这个是合法的,因为Local Context里面允许2种类型的iFrame。
    • <iframe src="http[s]://" 这个是合法的,因为Local Context里面允许2种类型的iFrame。
    • <a href="[someURL]" target="myFrame"> <iframe name="myFrame"> 这个是合法的,因为Local Context里面允许2种类型的iFrame。
    • <a href="ms-appx:///"> 这个是合法的,因为Local Context里面允许Local Context的直接Navigation。
    • <a href="ms-appx-web:///"> 这个是不合法的,因为Local Context里面不允许Web Context的直接Navigation。
    • <a href="[remoteURL]"> 这个没有合不合法一说,因为目标页面是外部页面,即不是以ms-appx开头的,所以Metro应用会打开浏览器显示目标页面。

    假如源页面是Web Context的,那么

    • <iframe src="ms-appx:///" 这个是不合法的,因为Web Context里面不允许Local Context的iFrame。
    • <iframe src="ms-appx-web:///" 这个是合法的,因为Web Context里面允许Web Context的iFrame。
    • <iframe src="http[s]://" 这个是合法的,因为Web Context里面允许Web Context的iFrame。
    • <a href="[someURL]" target="myFrame"> <iframe name="myFrame"> 这个是合法的只要URL是ms-appx-web开头。
    • <a href="ms-appx:///"> 这个是不合法的,因为Web Context里面不允许Local Context的直接Navigation,但是你可以通过调用MSApp.addPublicLocalApplicationUri("ms-appx:///frame-local.html");解决。
    • <a href="ms-appx-web:///"> 这个是合法的,因为Web Context里面允许Web Context的直接Navigation。
    • <a href="[remoteURL]"> 这个没有合不合法一说,因为目标页面是外部页面,即不是以ms-appx开头的,所以Metro应用会打开浏览器显示目标页面。

    除此之外,Web Context的页面是无权使用Broker对象的(照相机啊,GeoLocation啊),微软这么设计的原因就是他认为Web Context是不安全的,因为他们可以随意导航到外部页面。你只有手动的把他们加到信任列表里面才行。



  • 相关阅读:
    JS 页面生成锚点
    JavaScript AMD模块化规范
    Canvas文字的渲染基础 Better
    Canvas曲线绘制 Better
    clickhouse配置登录密码
    git pull 拉取报错:fatal: refusing to merge unrelated histories
    JAVA根据A星算法规划起点到终点二维坐标的最短路径
    JAVA使用netty建立websocket连接
    CSS设置文字超出部分自动换行
    SpringBoot(SpringMVC)使用addViewControllers设置统一请求URL重定向(映射、转发)配置
  • 原文地址:https://www.cnblogs.com/puncha/p/3876975.html
Copyright © 2011-2022 走看看