Uncaught SecurityError: Failed to read a named property 'href' from 'Location': Blocked a frame with origin "http://localhost:9529" from accessing a cross-origin frame.
at ./src/main.js (main.js:127:23)
...
javascript劫持属于HTTP劫持中的一种,主要是劫持js文件,然后在网页中通过js脚本往网页中注入图片和链接或者框架广告,也叫流量劫持。 文明一点的劫持只是右下角放一个固定广告,不文明的就自动弹出新广告窗口(一般会被浏览器拦截)或者给整个网页添加点击事件弹出新广告页面。
可以使用php或nginx等添加X-Frame-Options header来控制frame权限
X-Frame-Options有三个可选的值:
DENY:浏览器拒绝当前页面加载任何Frame页面
SAMEORIGIN:frame页面的地址只能为同源域名下的页面
ALLOW-FROM:允许frame加载的页面地址
框架编程概述
一个 HTML页面可以有一个或多个子框架,这些子框架以<iframe>来标记,用来显示一个独立的HTML页面。这里所讲的框架编程包括框架的自我控制以及框架之间的互相访问,例如从一个框架中引用另一个框架中的JavaScript变量、调用其他框架内的函数、控制另一个框架中表单的行为等。
框架间的互相引用
一个页面中的所有框架以集合的形式作为window对象的属性提供,例如:window.frames就表示该页面内所有框架的集合,这和表单对象、链接对象、图片对象等是类似的,不同的是,这些集合是document的属性。因此,要引用一个子框架,可以使用
firefox不支持iframe的onreadystatechange事件,这个让我调试一下下午。。。
直接贴代码
我这里想做的效果是先生成一个iframe,当我想里面加载内容的时候触发这个事件, 代码可以很清晰的看到用onload方法来进行替代了。
以下代码在IE8下运行通过,在IE9中出错:
错误提示:exception : SCRIPT5022
iframe自适应高度本身是很简单的方法,就是在页面加载完成后,重新计算一下高度即可。
代码如下:
// 父控制子
// 子控制父
chrome环境下需要通过HTTP访问才能生效
一、父窗口调用iframe子窗口方法
1、HTML语法:<iframe name="myFrame" src="child.html"></iframe>
2、父窗口调用子窗口:myFrame.window.functionName();
3、子窗品调用父窗口:parent.functionName();
简单地说,也就是在子窗口中调用的变量或函数前加个parent.就行
4、父窗口页面源码:
<div class="
父页面调用iframe里的js函数:
document.getElementById('iframedemo').contentWindow.demofunction(); //与下边一句等价
window.frames['iframedemo'].contentWindow.demofunction();
其中iframedemo是iframe的id,demofunction是iframe里的js函数名