今早起来,被港归20年新闻和短视频刷屏。嗯,林郑月娥女士宣誓的普通话好像不怎么标准欸~~
好吧,回归主题。前段发现我们的商城被运营商无耻(对,很无耻)的iFrame了,虽然头次发现,但是广告内容也是三俗(不精美、不相干)不可耐,果断加了防止frame的js代码到common-js里,后朋友又反映发现一次,我勒个擦!!!
休息时间,好好查了下资料,发现网上的资料也是各种知其然不知其所以然,这算被坑还是怪自己懒?啥都不说了,搞掂它吧!
综合网上说法,又有两种办法: 1. 使用meta标签
结果是然并卵!兼容性差的一逼,基本无视。
2. js控制顶层窗口跳转
if (top.location != self.location) { top.location = self.location; }
// 顶层窗口中放
var location = document.location;
呵呵~要不下这功夫呢。。。反正没帮我搞定问题!!!
那么,最后找到的靠谱方法是?
1、给NGX添加 header
add_header X-Frame-Options SAMEORIGIN;
网上看到也有在app中申明meta标签的,不知兼容好坏个人并不推荐。
**注意:**这个方法只是绝大部分浏览器兼容,详细配置及参数见 MDN: X-Frame-Options 响应头
2、使用https协议
这个方法很不错,也是趋势,不过就解决问题而言,灵活性谈不上了。
另外,可以看看【frame和iframe的区别】。好了,各位猿媛 Happy Coding ~