window.name is always casted to a string. Avoid writing code in a global context to avoid it....HTML5 中 对于window.name 的定义: The name attribute of the Window object must, on getting, return the current
考核内容: js 删除对象属性的应用 题发散度: ★★★ 试题难度: ★★★ 解题思路: 删除对象属性 我们可以使用 delete 关键字来删除 JSON 对象的属性: delete 操作符用于删除对象的某个属性
查了一些资料,大家一致认为除了 Node.js 和服务端,在 JavaScript 里没有 session 这种东西(或者说很不常见),所有的变数,函式等等的资料在页面重新载入时都会被清空,不过我发现... Session || (function() { // cache window 物件 var win = window.top || window; // 将资料都存入 window.name...json 格式 function Save() { win.name = JSON.stringify(store); }; // 在页面 unload 的时候将资料存入 window.name...而 window.name 这个 property 在页面跳出时是不会被清除的。...声明:本文由w3h5原创,转载请注明出处:《Javascript操作将session资料存入window.name里》 https://www.w3h5.com/post/410.html
ajax跨域请求,目前已用几种方法实现: 1)用原生js的xhr对象实现。 ...在响应头中,服务端返回Access-control-Allow-Origin:*. 2),通过jsonp数据来实现,说白了,jsonp就是js可执行文件,由于和,加载的文件不受同源限制...window.name都有读写的权限,window.name是持久存在一个窗口载入过的所有页面中的,并不会因新页面的载入而进行重置。...比如有一个www.example.com/a.html页面,需要通过a.html页面里的js来获取另一个位于不同域上的页面www.cnblogs.com/data.html里的数据。...上面的代码只是最简单的原理演示代码,你可以对使用js封装上面的过程,比如动态的创建iframe,动态的注册各种事件等等,当然为了安全,获取完数据后,还可以销毁作为代理的iframe。
这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据。...这样jsonp的原理就很清楚了,通过script标签引入一个js文件,这个js文件载入成功后会执行我们在url参数中指定的函数,并且会把我们需要的json数据作为参数传入。...window.name都有读写的权限,window.name是持久存在一个窗口载入过的所有页面中的,并不会因新页面的载入而进行重置。...如果在之后所有载入的页面都没对window.name进行修改的话,那么所有这些页面获取到的window.name的值都是a.html页面设置的那个值。...通过window.name来进行跨域,就是这样子的。
这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据。...因为是当做一个js文件来引入的,所以http://example.com/data.php返回的必须是一个能执行的js文件,所以这个页面的php代码可能是这样的: ?...window.name都有读写的权限,window.name是持久存在一个窗口载入过的所有页面中的,并不会因新页面的载入而进行重置。...如果在之后所有载入的页面都没对window.name进行修改的话,那么所有这些页面获取到的window.name的值都是a.html页面设置的那个值。...通过window.name来进行跨域,就是这样子的。
在layer弹出层中调用父界面重新加载函数 1 2 3 window.parent.location.reload(); varindex = parent.layer.getFrameIndex(window.name...对于layer.js出现回调关闭父类的弹出层时,之前的表单的submit失效的问题: 如何解决:网上有很多,有的是转为ajax的请求,在数据传输完再关闭父类的弹出层: 下面是关闭父弹出层的办法: 1 2...varindex = parent.layer.getFrameIndex(window.name);//获取窗口索引 parent.layer.close(index);// 关闭layer 采用...(function() { parent.layer.close(index);// 关闭layer },500); 我还需要在关闭父类窗口后再打开一个窗口,则怎么解决,后面发现layer.js留有一个好的方式...,那就是调用父窗口的方法,这个不受子窗口的影响,通过:parent.父类方法名(参数)这样就可以了,在父窗口中再调用layer.js的弹出就好了。
这个写法是为了去掉refer的,javascript:;跳转一个新的页面,而window.name 在此次发现类似于一个容器,对比以下两个效果 如果直接执行以下代码,会跳转到一个空白页面 window.open...('javascript:;', 'console.log(window.name)') image.png image.png 加上window.name,再执行下面的代码...,会发现 name 是一个容器,装了写的整个js window.open('javascript:window.name;', 'console.log(window.name)') image.png image.png 这里也有一个关于window.name的介绍 再把location打印出来,里面有一个repalce方法,调用这个方法会把当前页面的url替换成目标url
本文实例讲述了PHP下ajax跨域的解决方案之window.name。...依此原理,我们可以在页面A中用iframe加载其他域的页面B,而页面B中用JavaScript把需要传递的数据赋值给 window.name,页面A的iframe加载完成之后,页面A修改iframe的地址...,将其变成同域的一个地址,然后就可以读出window.name的值了。...</head <body <script type="text/javascript" //添加需要传递的数据,大小一般为2M,IE和firefox下可以大至32M左右 window.name.../jquery.js" </script <script type="text/javascript" var ifr = document.getElementById("iframe"); ifr.src
== "") { document.getElementById("message").value=""; window.name="modify... 点击文本框输入内容先清空默认提示信息,为了避免再次输入的时候继续清空,所以修改了window.name的值。...window.name="modify"; } 获取文本框的值,然后去空格检查长度是否是零,如果是零则让按钮不可用,否则让按钮可用。...属性第一次打开页面为空 window.name == "" //如何通过js获取一个文本框的值,这里需要文本框有ID属性 document.getElementById("message").value...所以这里再次强调一下所有客户端的内容都是不可靠的哪怕你做了JS混淆也可以通过Eval()函数执行,所以服务器端的校验是非常重要的,当然同样就算是服务器返回的内容也要做校验,避免被注入。
0x07 通过window.name跨域 window对象有个name属性,该属性有个特征:即在一个窗口(window)的生命周期内,窗口载入的所有的页面都是共享一个window.name的,每个页面对...window.name都有读写的权限,window.name是持久存在一个窗口载入过的所有页面中的,并不会因新页面的载入而进行重置。..."http://damonare.cn/"; },1000) 进入damonare.cn页面后我们再检测再检测 window.name : window.name; // My window's name...基于这个思想,我们可以在某个页面设置好 window.name 的值,然后跳转到另外一个页面。在这个页面中就可以获取到我们刚刚设置的 window.name 了。...由于安全原因,浏览器始终会保持 window.name 是string 类型。
详情见原博客:详解js跨域问题 概念:只要协议、域名、端口有任何一个不同,都被当作是不同的域。...它的第二个限制是浏览器中不同域的框架之间是不能进行js的交互操作的。 不同的frame之间是可以获取window对象的,但却无法获取相应的属性和方法。...(这里必须设置为example.com) 使用window.name来进行跨域 window对象有个name属性,该属性有个特征:即在一个窗口(window)的生命周期内,窗口载入的所有的页面都是共享一个...window.name的,每个页面对window.name都有读写的权限,window.name是持久存在一个窗口载入过的所有页面中的 使用HTML5的window.postMessage方法跨域 window.postMessage
这个点可以存在一个任意跳转,通过这个点,我们可以绕过submit的限制(submit的maxlength是前台限制,可以随便跳转 4、站内的特效是通过jqery的append引入的,在article.js...可如果我们尝试插入这个标签后,我们发现插入的effects在接下来的config.js中被覆盖了。...这时候我们回到刚才提到的特性,浏览器有一定的容错能力,我们可以通过插入,那么这个标签会自动闭合后面config.js的,那么中间的代码就会被视为js代码,被CSP拦截。...,紧接着,我们需要想办法获取这里的window.name。...这里用到了一个特殊的特性,就是window.name不跟随域变化而变化,通过window.name我们可以缓存原本的数据。
/a.js https://www.haorooms.com/b.js 同一域名,不同协议 不允许 http://www.haorooms.com/a.js http://60.32.92.74/b.js...纯js的ajax请求。...使用window.name来进行跨域 原理: window对象有个name属性,该属性有个特征:即在一个窗口(window)的生命周期内,窗口载入的所有的页面都是共享一个window.name的,每个页面对...window.name都有读写的权限,window.name是持久存在一个窗口载入过的所有页面中的。...数据页面会把数据附加到这个iframe的window.name上,data.html代码如下: window.name = 'I
jsonp-跨域 function callbackFn(data){...2.window.name解决跨域问题 在客户端浏览器中每个页面都有一个独立的窗口对象window,默认情况下window.name为空,在窗口的生命周期中,载入的所有页面共享一个window.name...并且每个页面都有对此读写的权限,window.name会一直存在当前窗口,但存储的字符串不超过2M。...= "我是 window.name 字符串"; setTimeout(function(){ window.location = "http://localhost:9393/
js中的this指向 首先,js中的this指向是根据运行时确定的,而非定义时。...js中的this指向大致分为如下几种: 作为对象的方法调用 作为普通函数调用 构造调用 call、apply调用 作为对象的方法调用 var obj = { a: 1, getA: function...{ alert ( this === obj ); // true alert ( this.a ); // 1 } }; obj.getA(); 作为普通函数调用(浏览器环境) window.name...globalName'; var getName = function(){ return this.name; }; console.log( getName() ); // globalName 或者 window.name
index.html#alert(/xss执行/) # 构造xss $var变量的值 " onclick="eval(location.hash.substr(1))" 当触发鼠标时间后,就会执行eval函数(执行js...window.name是对当前窗口的对象操作,而非document……利用window.name可以实现不一样的神奇的操作… index_1.html: window.name =...由此可得出:window.name是可以跨站、跨页面实现一定的操作内容的!...同理:window.name的内容值实现了跨页面后,就可以在另外一个由该页面跳转的HTML页面中发现xss漏洞后利用window.name;若window.name是一个xss Payload语句,在页面...xss利用处直接写入eval(window.name)岂不是美哉!
使用window.name跨域 6. 使用HTML5的window.postMessage方法跨域 1....www.a.com:8000/a.js http://www.a.com/b.js 同一域名,不同端口 不允许 http://www.a.com/a.js https://www.a.com/b.js...同一域名,不同协议 不允许 http://www.a.com/a.js http://70.32.92.74/b.js 域名和域名对应ip 不允许 http://www.a.com/a.js http...使用window.name跨域 window对象有name属性,在一个窗口(window)的生命周期内,窗口载入的所有的页面都共享一个window.name,每个页面对window.name都有读写的权限...,window.name是持久存在一个窗口载入过的所有页面中的 6.
www.a.com:8000/a.js http://www.a.com/b.js 同一域名,不同端口 不允许 http://www.a.com/a.js https://www.a.com/b.js...同一域名,不同协议 不允许 http://www.a.com/a.js http://70.32.92.74/b.js 域名和域名对应ip 不允许 http://www.a.com/a.js http...://script.a.com/b.js 主域相同,子域不同 不允许 http://www.a.com/a.js http://a.com/b.js 同一域名,不同二级域名(同上) 不允许(cookie...使用window.name跨域 window对象有name属性,在一个窗口(window)的生命周期内,窗口载入的所有的页面都共享一个window.name,每个页面对window.name都有读写的权限...,window.name是持久存在一个窗口载入过的所有页面中的 6.
比如上面的,http://www.a.com/a.js和http://70.32.92.74/b.js。虽然域名和域名的ip对应,不过还是被认为是跨域。...5、使用window.name来进行跨域(相对比较完美的方法) 原理: 当iframe的页面跳到其他地址时,其window.name值保持不变,并且可以支持非常长的 name 值(2MB)。...浏览器跨域iframe禁止互相调用/传值.但是调用iframe时 window.name 却不变,正是利用这个特性来互相传值,当然跨域下是不容许读取ifram的window.name值. ...由于当iframe的页面跳到其他地址时,其window.name值保持不变,并且此时开关变量 state已经变为1, 于是就可以获取到window.name值,也就达到了跨域访问的目的了...缺点: ie8以前不支持 window.name: 主要是应用当frame的页面跳到其他地址时,其window.name值保持不变的原理。兼容性好。需要照顾落后的浏览器时,首选。
领取专属 10元无门槛券
手把手带您无忧上云