取得 iframe 容器的 URL

检测所在窗口是否为最外层的窗口,若不是则跳脱包含它的框架

if( window !== window.top ) {

window.top.location = location;

}

top 对象指向最外层,浏览器窗口本身,self 总是等于window

当Iframe page和 containing page 来自同源时,parent.location or top.location可以获取containing 页的地址

参考

Getting the URL of an iframe’s parenthttp://www.nczonline.net/blog/2013/04/16/getting-the-url-of-an-iframes-parent/

http://www.nczonline.net/blog/2009/09/15/iframes-onload-and-documentdomain/

不同源的话

来自另一个域名iframe 里面的内容不能被容器页面的Javascript 操作读取,iframe也不能操作容器页面

the HTTPReferer header for a page inside of an iframe is always set to the containing page’s URL

function getParentUrl() {
    var isInIframe = (parent !== window), //检测是否该页面是否在iframe中
        parentUrl = null;

    if (isInIframe) {
        parentUrl = document.referrer;
    }

    return parentUrl;
}
时间: 2024-10-05 20:55:30

取得 iframe 容器的 URL的相关文章

iOS - UIWebView和WKWebView的比较和选择-作为H5容器的一些探究

一.Native开发中为什么需要H5容器 Native开发原生应用是手机操作系统厂商(目前主要是苹果的iOS和google的Android)对外界提供的标准化的开发模式,他们对于native开发提供了一套标准化实现和优化方案.但是他们存在一些硬伤,比如App的发版周期偏长.有时无法跟上产品的更新节奏:灵活性差,如果有较大的方案变更,需要发版才能解决:如果存在bug,在当前版本修复的难度比较大(iOS的JSPatch方案和Android的Dex修复方案);需要根据不同的平台写不同的代码,iOS主要

iOS H5 容器的一些探究(一):UIWebView 和 WKWebView 的比较和选择

来源:景铭巴巴 链接:http://www.jianshu.com/p/84a6b1ac974a 一.Native开发中为什么需要H5容器 Native开发原生应用是手机操作系统厂商(目前主要是苹果的iOS和google的Android)对外界提供的标准化的开发模式,他们对于native开发提供了一套标准化实现和优化方案.但是他们存在一些硬伤,比如App的发版周期偏长.有时无法跟上产品的更新节奏:灵活性差,如果有较大的方案变更,需要发版才能解决:如果存在bug,在当前版本修复的难度比较大(iOS

iOS H5容器的一些探究(一):UIWebView和WKWebView的比较和选择

一.Native开发中为什么需要H5容器 Native开发原生应用是手机操作系统厂商(目前主要是苹果的iOS和google的Android)对外界提供的标准化的开发模式,他们对于native开发提供了一套标准化实现和优化方案.但是他们存在一些硬伤,比如App的发版周期偏长.有时无法跟上产品的更新节奏:灵活性差,如果有较大的方案变更,需要发版才能解决:如果存在bug,在当前版本修复的难度比较大(iOS的JSPatch方案和Android的Dex修复方案);需要根据不同的平台写不同的代码,iOS主要

Servlet和Filter的url匹配以及url-pattern详解

Servlet和Filter的url匹配以及url-pattern详解 Servlet和filter是J2EE开发中常用的技术,使用方便,配置简单,老少皆宜.估计大多数朋友都是直接配置用,也没有关心过具体的细节,今天遇到一个问题,上网查了servlet的规范才发现,servlet和filter中的url-pattern还是有一些文章在里面的,总结了一些东西,放出来供大家参考,以免遇到问题又要浪费时间. 一,servlet容器对url的匹配过 当一个请求发送到servlet容器的时候,容器先会将请

使用iframe从网页调起移动端应用

比如想在网页中调起支付宝,我们可以创建一个iframe,src为: alipayqr://platformapi/startapp?saId=10000007&clientVersion=3.7.0.0718&qrcode={支付二维码扫描的url} 浏览器接收到这个url请求发现未知协议,会交给系统处理,系统就能调起支付宝客户端了.我们还能趁机检查一下用户是否安装客户端:给iframe设置一个3-5秒的css3的transition过渡动画,然后监听动画完成事件,如果用户安装了客户端,那

转:Servlet的url匹配以及url-pattern详解

Servlet是J2EE开发中常用的技术,使用方便,配置简单,老少皆宜.估计大多数朋友都是直接配置用,也没有关心过具体的细节,今天遇到一个问题,上网查了servlet的规范才发现,servlet中的url-pattern还是有一些文章在里面的,总结了一些东西,放出来供大家参考,以免遇到问题又要浪费时间. 一,servlet容器对url的匹配过程: 当一个请求发送到servlet容器的时候,容器先会将请求的url减去当前应用上下文的路径作为servlet的映射url,比如我访问的是http://l

iOS下JS与OC互相调用(一)--UIWebView 拦截URL

http://blog.csdn.net/u011619283/article/details/52135977 最近准备把之前用UIWebView实现的JS与原生相互调用功能,用WKWebView来替换.顺便搜索整理了一下JS 与OC 交互的方式,非常之多啊.目前我已知的JS 与 OC 交互的处理方式: * 1.在JS 中做一次URL跳转,然后在OC中拦截跳转.(这里分为UIWebView 和 WKWebView两种,去年因为还要兼容iOS 6,所以没办法只能采用UIWebView来做.) *

Ajax-02 iframe实现伪“Ajax”

需求: 用户输入URL,使用iframe将目标URL的内容加载到页面指定位置(局部刷新) <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>使用iframe局部刷新</title> </head> <body> <div> <p>请输入要加载的地址:<s

容器、应用服务器和web服务器的区别

什么是容器 servlet没main()方法.它们受控于另一个java应用,这个java应用称为容器(Container)Tomcat是这样的容器,Web服务器应用(Apache)得到一个指向servlet请求时,服务器不是把这个请求交给servlet本身,而是交给部署该servlet的容器.要由容器向servlet提供HTTP请求和响应,而且要由容器调用servlet的方法. 客户-->请求--->Web服务器应用--->web容器应用--->servlet-------->