How to prevent IFRAME from redirecting top-level window

2014-05-19 19:34:34

I use sandbox=”…”

  • allow-forms allows form submission
  • allow-popups allows popups
  • allow-pointer-lock allows pointer lock
  • allow-same-origin allows the document to maintain its origin
  • allow-scripts allows JavaScript execution, and also allows features to trigger automatically
  • allow-top-navigation allows the document to break out of the frame by navigating the top-level window

Top navigation is what you want to prevent, so leave that out and it will not be allowed. Anything left out will be blocked

ex.
[php]<iframe sandbox="allow-same-origin allow-scripts allow-popups allow-forms" src="http://www.example.com"[/php]

JS跨域抓取信息

众所周知,JS是不能跨域抓取数据的,除非有授权。所以本文并非真的直接跨域抓取,而是换个思路。通过转折,先用PHP抓取所需信息,然后传给JS. 今日,应老师要求,给学校做一个无线网登陆页面。为了更好的适应PC,移动终端,选择bootstrap快速开发,静态页面马上完工。剩下的便是今天要说到的问题: 要从学校主页http://www.bistu.edu.cn抓取通知数据和http://news.bistu.edu.cn/zhxw/抓取学校要闻,都取最新的五条,由于是HTML页面,PHP显得苍白无力,只好用JS。。可惜JS基本白痴,Google发现还不能跨域,虽然有些解决办法,貌似很复杂,对JS小白是在做不到啊~ 于是想到了先用PHP正则抓到新闻,(期间也用php生成json数组供JS远程调用,略显麻烦)输出让JS舒服的数组,然后JS再上简单多了,说上就上,首先看需要抓取的页面的源码,找到所需信息的特定标签,然后直接PHP匹该标签。废话不说,直接贴出正则: [php] ]*class="xs2

跨域修改iframe中的内容

有时候会需在自己的网站上显示其他网站的部分内容,虽说php+js可以抓到,但最简洁的方法便是iframe引用了。不过现在的站长学聪明了,大多用js检测是否有人引用自己的页面,一旦检测到立马直接跳转到自己的网站去,这样一来,不仅抓取不成,反而跳到他的网站。。。不过搞代码的,不都是见招拆招吗,你禁止我引用,我就另出奇招。Google上借用了下国外朋友的妙招,成功破解防iframe引用, ;-)。 现在来说说成功引用后的事,引用是成功了,可是有点东西看着碍眼,可是这是别人的页面,想改也改不得啊~这时候就想到了用JS搞定它,跨域替换iframe中的内容,当然也用到了些php,废话不多说,直接贴代码: 先是加载iframe了: [php] [/php] 然后是JS: [code lang=”js”] document.getElementsByTagName("iframe")[0].src="replace.php?"+document.getElementsByTagName("iframe")[0].src; [/code] 再上php,replace.php: