首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何确定是从“原始”窗口还是从iframe调用Javascript函数?

确定是从"原始"窗口还是从iframe调用Javascript函数可以通过以下几种方式来实现:

  1. 使用window对象的top属性进行判断:可以通过判断window.top是否等于当前窗口的window对象来确定是否在iframe中。如果相等,则表示当前窗口是"原始"窗口;否则,则表示当前窗口是在iframe中调用Javascript函数。
  2. 使用window对象的self属性进行判断:可以通过判断window.self是否等于当前窗口的window对象来确定是否在iframe中。如果相等,则表示当前窗口是"原始"窗口;否则,则表示当前窗口是在iframe中调用Javascript函数。
  3. 使用window对象的frameElement属性进行判断:可以通过判断window.frameElement是否为null来确定是否在iframe中。如果为null,则表示当前窗口是"原始"窗口;否则,则表示当前窗口是在iframe中调用Javascript函数。

以上是一些常用的方法来确定是从"原始"窗口还是从iframe调用Javascript函数的方式。根据实际需求和使用场景,可以选择适合的方式来判断并执行相应的逻辑操作。

腾讯云相关产品和产品介绍链接地址: 腾讯云的云计算产品包括云服务器(https://cloud.tencent.com/product/cvm)、云数据库(https://cloud.tencent.com/product/cdb)、对象存储(https://cloud.tencent.com/product/cos)等,详细信息可以参考腾讯云官网相关产品介绍页面。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Java 函数调用是传值还是传引用?字节码角度来看看 !

上文已经得到结论,我们JVM的字节码的角度看一下过程是怎么样的。 首先大致JVM的基本结构,对基本类型,和对象存放的位置有一个大致的了解。下图是JVM的基本组件图。...运行时常量池(Runtime Constant Pool): 存放的为类中的固定的常量信息、方法和Field的引用信息等,其空间方法区域中分配。...下图是另一个角度解析JVM的结构,JVM是基于栈来操作的,每一个线程有自己的操作栈,遇到方法调用时会开辟栈帧,它含有自己的返回值,局部变量表,操作栈,以及对常量池的符号引用。...函数的字节码中可以看到,它的值保存的还是第10行,通过istore_2保存到局部变量第2个索引处的18....题外话,因为这个是调用具体实例的函数,所以索引0处保存的是实例的引用。索引1保存的是传参car的引用地址,car2保存的是函数内创建的Car实例的地址。

1.5K30

检查原生 JavaScript 函数是否被覆盖

/[1] 作者:https://mmazzarolo.com/about/[2] 你如何确定一个JavaScript原生函数是否被覆盖?...然而,你必须知道,欺骗它是很容易的,让它认为一个函数仍然是原生的,可惜并不是。无论是出于恶意(例如,在代码中下病毒),还是因为你想让你的覆盖不被发现,你有几种方法可以让函数看起来是"原生"的。...你可以调用多个.toString().toString()以确保函数toString()不被重写。...iframe中抓取干净函数 如果你需要调用一个"干净"函数,而不是检查一个原生函数是否被猴子补丁过,另一个潜在的选择是从一个同源的iframe中抓取它。...如何确定是否被覆盖 我对这个问题的看法(或者更好的说法是 "猜测")是,根据不同的使用情况,可能没有一种失败的证明方法来确定它。

58520
  • 【前端安全】JavaScript防http劫持与XSS

    最近用 JavaScript 写了一个组件,可以在前端层面防御部分 HTTP 劫持与 XSS。 当然,防御这些劫持最好的方法还是后端入手,前端能做的实在太少。...关于这些攻击如何生成,攻击者如何注入恶意代码到页面中本文不做讨论,只要知道如 HTTP 劫持 和 XSS 最终都是恶意代码在客户端,通常也就是用户浏览器端执行,本文将讨论的就是假设注入已经存在,如何利用...在调用时,观察者对象会传给该函数两个参数,第一个参数是个包含了若干个 MutationRecord 对象的数组,第二个参数则是这个观察者对象本身。...但是还是有手段可以拿到原生的 Element.prototype.setAttribute ,只需要一个新的 iframe 。...其实防御劫持最好的方法还是后端入手,前端能做的实在太少。而且由于源码的暴露,攻击者很容易绕过我们的防御手段。

    3.3K40

    JavaScript引擎是如何工作的?调用栈到Promise你需要知道的一切

    JavaScript Engines: How Do They Even Work? 你有没有想过浏览器是如何读取和运行 JavaScript 代码的吗?...当一个函数调用时,JavaScript 引擎会为另外两个盒子腾出空间: 全局执行上下文环境 调用栈 全局执行上下文和调用栈 在上一节你了解了 JavaScript 引擎是如何读取变量和函数声明的,他们最终进入了全局内存...调用栈是一个栈数据结构:这意味着元素可以顶部进入,但如果在它们上面还有一些元素,就不能离开栈。 JavaScript 函数就是这样的。...单线程的JavaScript 我们说 JavaScript 是单线程的,因为有一个调用栈处理我们的函数。也就是说,如果有其他函数等待执行,函数是不能离开调用栈的。 当处理同步代码时,这不是什么问题。...在接下来的部分中,你将看到异步代码如何JavaScript 中工作以及为什么这样工作。

    1.5K30

    360护心镜脚本分析及N种绕过方式

    在研究如何绕过一个系统之前,不急于直接读代码,先旁敲侧击看看这个系统大体都做了什么。...之后的代码分析中了解,HOOK 函数实现了以下功能: 模块 功能 Hook_CreateElement 对 CreateElement 方法进行 Hook Hook_Image 对Image对象产生的实例进行...,使用了 iframe 中读写 Cookie 来实现 钩子函数中的 cookie 操作,和第一个钩子的绕过方式相同, 直接利用作者的方法,使用 iframe 操作 cookie 就可以绕过钩子函数了(...,通过原型链上的 alert 可以轻易获取和还原原始方法。...即便如此,护心镜还是很有价值的,毕竟不是每一个攻击者都是有心人。 目前的脚本还待改善,文中提出的几点再提一次: 性能优化,比如:cookie读写。 原型链上开始 Hook。

    1.1K80

    跨域方法汇总

    这两者都最终实现了跨域的调用,这个方法功能上要比下面介绍到的 JSONP 更强,因为跨域完毕之后 DOM 操作和互相之间的 JavaScript 调用都是没有问题的,但是也有一些限制,比如结果要以 URL...利用 script 标签跨域,这个办法也很常见,script 标签是可以加载异域的 JavaScript 并执行的,通过预先设定好的 callback 函数来实现和母页面的交互。...,function(data){ //... }); 总的来说,JSONP 的跨域方式的局限性在于,只能使用 GET 请求,并且不能解决不同域的两个页面之间如何进行 JavaScript 调用的问题...使用它向其它窗口发送消息的调用方式如下: otherWindow.postMessage(message, targetOrigin); 在接收的窗口,需要设置一个事件处理函数来接收发过来的消息: window.addEventListener...Fragment Identitier 就是 URL 的井号(#)后面的经常用于锚点定位的部分,这部分的改变不会导致页面刷新,母窗口可以随便访问 iframe 的 URL,而 iframe 也可以随便访问母窗口

    59210

    JS 跨域问题常见的五种解决方式

    回调函数是当响应到来时应该在页面中调用函数,而数据就是传入回调函数中的JSON数据。 jsonp的原理是: 就是利用标签没有跨域限制,来达到与第三方通讯的目的。...$.getJSON方法会自动判断是否跨域,不跨域的话,就调用普通的ajax方法;跨域的话,则会以异步加载js文件的形式来调用jsonp的回调函数。...不过这时就不能使用$.getJson版的匿名函数了 直接再加个 看看结果,数据返回后相应的函数就被调用执行。...jsonp的方式很简便,它的缺点就是: 它只支持GET请求而不支持POST等其它类型的HTTP请求; 它只支持跨域HTTP请求这种情况,不能解决不同域的两个页面之间如何进行JavaScript调用的问题...第四: 使用window.name + iframe window对象有个name属性,该属性有个特征:即在一个窗口(window)的生命周期内,窗口载入的所有的页面都是共享一个window.name的

    1.5K00

    详解JavaScript跨域问题

    CORS背后的基本思想就是使用自定义的HTTP头部让浏览器与服务器进行沟通,从而决定请求或响应是应该成功还是失败。...JSONP也叫填充式JSON,是应用JSON的一种新方法,只不过是被包含在函数调用中的JSON,例如: callback({"name","trigkit4"}); JSONP由两部分组成:回调函数和数据...回调函数是当响应到来时应该在页面中调用函数,而数据就是传入回调函数中的JSON数据。 在js中,我们直接用XMLHttpRequest请求不同域上的数据时,是不可以的。...$.getJSON方法会自动判断是否跨域,不跨域的话,就调用普通的ajax方法;跨域的话,则会以异步加载js文件的形式来调用jsonp的回调函数。...JSONP的缺点则是:它只支持GET请求而不支持POST等其它类型的HTTP请求;它只支持跨域HTTP请求这种情况,不能解决不同域的两个页面之间如何进行JavaScript调用的问题。

    1.1K100

    Comet:基于 HTTP 长连接的“服务器推”技术

    客户端呈现给用户的是 HTML 页面还是 Java applet 或 Flash 窗口。如果使用套接口和远程调用,怎么和 JavaScript 结合修改 HTML 的显示。...关于如何去构建充当了 JavaScript 与 Flash XMLSocket 桥梁的 Flash 程序,以及如何JavaScript调用 Flash 提供的接口,我们可以参考 AFLAX(Asynchronous...同样的思路用在 iframe 方案的客户端,iframe 服务器端并不返回直接显示在页面的数据,而是返回对客户端 Javascript 函数调用,如“<script type="text/<em>javascript</em>...服务器端将返回的数据作为客户端 <em>JavaScript</em> <em>函数</em>的参数传递;客户端浏览器的 <em>Javascript</em> 引擎在收到服务器返回的 <em>JavaScript</em> <em>调用</em>时就会去执行代码。...小结 本文介绍了<em>如何</em>在现有的技术基础上选择合适的方案开发一个“服务器推”的应用,最优的方案<em>还是</em>取决于应用需求的本身。相对于传统的 Web 应用, 目前开发 Comet 应用<em>还是</em>具有一定的挑战性。

    2.6K30

    web messaging与Woker分类:漫谈postMessage跨线程跨页面通信

    通过窗口的origin属性来指定哪些窗口能接收到消息事件,字符串"*"(表示无限制)或者指定URI。 transfer:Transferable 对象。...—— 任何窗口都可以向任何其他窗口发送消息,并且您不能保证未知发件人不会发送恶意消息。 但是,验证身份后,您仍然应该始终验证接收到的消息的语法。...Broadcast Channel: 可以实现同 源 下浏览器不同窗口,Tab页,frame或者 iframe 下的 浏览器上下文 (通常是同一个网站下不同的页面)之间的简单通讯。...,当message 事件发生时,该函数调用。...source 原始文件的窗口的引用。更确切地说,它是一个WindowProxy对象。 ports 一个数组,包含任何MessagePort对象发送消息。

    2.2K30

    Comet技术详解:基于HTTP长连接的Web端实时通信技术前言学习交流概述“服务器推”(Comet技术)的应用范围来看看更传统的基于客户端套接口的“服务器推”技术基于 HTTP 长连接的“服务器

    将“服务器推”应用在 Web 程序中,首先考虑的是如何在功能有限的浏览器端接收、处理信息: 1] 客户端如何接收、处理信息,是否需要使用套接口或是使用远程调用。...客户端呈现给用户的是 HTML 页面还是 Java applet 或 Flash 窗口。如果使用套接口和远程调用,怎么和 JavaScript 结合修改 HTML 的显示。...关于如何去构建充当了 JavaScript 与 Flash XMLSocket 桥梁的 Flash 程序,以及如何JavaScript调用 Flash 提供的接口,我们可以参考 AFLAX(Asynchronous...同样的思路用在 iframe 方案的客户端,iframe 服务器端并不返回直接显示在页面的数据,而是返回对客户端 Javascript 函数调用,如“js_func(“data from server...服务器端将返回的数据作为客户端 JavaScript 函数的参数传递;客户端浏览器的 Javascript 引擎在收到服务器返回的 JavaScript 调用时就会去执行代码。

    6K11

    Web前端学习笔记之前端跨域知识总结

    0x03 通过location.hash跨域 因为父窗口可以对iframe进行URL读写,iframe也可以读写父窗口的URL,URL有一部分被称为hash,就是#号及其后面的字符,它一般用于浏览器锚点定位...所以我们可以通过script标签引入一个js或者是一个其他后缀形式(如php,jsp等)的文件,此文件返回一个js函数调用。...$.getJSON方法会自动判断是否跨域,不跨域的话,就调用普通的ajax方法;跨域的话,则会以异步加载js文件的形式来调用jsonp的回调函数。...JSONP的缺点则是:它只支持GET请求而不支持POST等其它类型的HTTP请求;它只支持跨域HTTP请求这种情况,不能解决不同域的两个页面之间如何进行JavaScript调用的问题。...CORS背后的基本思想就是使用自定义的HTTP头部让浏览器与服务器进行沟通,从而决定请求或响应是应该成功还是失败。目前,所有浏览器都支持该功能,IE浏览器不能低于IE10。

    1.1K30

    学会JS中如何轻松检查变量类型

    今天要分享的问题就是:如何在JS中检查一个变量的类型?先上结论:如果判断的是基本数据类型或JavaScript内置对象,使用toString;如果要判断的是自定义类型,请使用instanceof。...对于function 函数,返回 function 类型。技术角度讲,函数在ECMAScript中是对象,不是一种数据类型。...其二,constructor指向的是最初创建当前对象的函数,是原型链最上层的那个方法:与instanceof不同的是,在访问基本数据类型的属性时,JavaScript会自动调用其构造函数来生成一个对象。...instanceof跨窗口问题我们知道Javascript是运行在宿主环境下的,而每个宿主环境会提供一套ECMA标准的内置对象,以及宿主对象(如window, document),一个新的窗口即是一个新的宿主环境...toString.call(new Fruit) // [object Object]因为返回值是字符串,也避免了跨窗口问题。当然IE弹窗中还是有Bug,不必管它了。 现在多少人还在用IE?

    39400

    Comet:基于 HTTP 长连接的“服务器推”技术

    关于如何去构建充当了 JavaScript 与 Flash XMLSocket 桥梁的 Flash 程序,以及如何JavaScript调用 Flash 提供的接口,我们可以参考 AFLAX(Asynchronous...在这种长轮询方式下,客户端是在 XMLHttpRequest 的 readystate 为 4(即数据传输结束)时调用回调函数,进行信息处理。...同样的思路用在 iframe 方案的客户端,iframe 服务器端并不返回直接显示在页面的数据,而是返回对客户端 Javascript 函数调用,如“<script type="text/<em>javascript</em>...服务器端将返回的数据作为客户端 <em>JavaScript</em> <em>函数</em>的参数传递;客户端浏览器的 <em>Javascript</em> 引擎在收到服务器返回的 <em>JavaScript</em> <em>调用</em>时就会去执行代码。...小结 本文介绍了<em>如何</em>在现有的技术基础上选择合适的方案开发一个“服务器推”的应用,最优的方案<em>还是</em>取决于应用需求的本身。相对于传统的 Web 应用, 目前开发 Comet 应用<em>还是</em>具有一定的挑战性。

    2.2K70

    40道+JavaScript基础面试题(附答案)

    10、 谈谈this的理解 1) this总是指向函数的直接调用者(而非间接调用者) 2) 如果有new关键字,this指向new出来的那个对象 3) 在事件中,this指向目标元素,特殊的是IE的attachEvent...$.getJSON方法会自动判断是否跨域,不跨域的话,就调用普通的ajax方法;跨域的话,则会以异步加载js文件的形式来调用JSONP的回调函数。...,addCallback是用来注册flash函数让js调用。...这个算法假定设置一个叫做根(root)的对象(在Javascript里,根是全局对象)。定期的,垃圾回收器将从根开始,找所有根开始引用的对象,然后找这些对象引用的对象。...45、 web应用服务器主动推送data到客户端的方式? JavaScript数据推送:commet(基于http长连接的服务器推送技术)。

    1.1K10

    WEB开发面面谈之(5)——写JS时必须注意的的一些问题

    , function(){...}); 如何操作iframe内部的window 写法1: iframe.contentWindow 问题: 部分浏览器不兼容(IE67),获取失败 写法2: document.frames...[frameId] 问题: 非标准调用,兼容性是问题,强制必须为iframe添加ID。...问题: 完全依赖CSS控制,但存在兼容性问题,IE继续头疼 最终解决方案: iframe.boder = 0; iframe.style.boder = 'none'; 如何在a标签上绑定鼠标点击事件...vb还是c#),不要画蛇添足 动态创建的script标签必须要指定type='text/javascript',否则JS不会执行 var script = document.createElement(...仅当确实需要渲染HTML时才用html()方法 安全角度,text()方法比html()方法更安全,无注入风险。

    1.7K60
    领券