JavaScript跳出iframe框架

一、window.top

top属性返回最顶层的先辈窗口。

该属性返回对一个顶级窗口的只读引用。如果窗口本身就是一个顶级窗口,top属性存放对窗口自身的引用。如果窗口是一个框架,那么top属性引用包含框架的顶层窗口。

二、window.self

self属性可返回对窗口自身的只读引用。等价于Window属性。

三、window.location

window.location(MDN)对象用于获得当前页面的地址 (URL),并把浏览器重定向到新的页面。

3.1 示例

window.location = 'http://www.mazey.net/'; //网站将跳转到后面的网址

3.2 属性

  • location.hostname返回web主机的域名
  • location.pathname返回当前页面的路径和文件名
  • location.port返回web主机的端口(80或443)
  • location.protocol返回所使用的web协议(http://或https://)

四、iframe示例

<h1>iframe 1</h1>
<button type="button" id="self">Show Self</button>
<button type="button" id="selflocation">Show Self Location</button>
<button type="button" id="selfhref">Show Self Href</button>

<button type="button" id="top">Show Top</button>
<button type="button" id="toplocation">Show Top Location</button>
<button type="button" id="tophref">Show Top Href</button>

<button type="button" id="replace">Replace Me To Whole Page</button>

<script>
document.getElementById('self').addEventListener('click', function(){
    alert(window.self);
});
document.getElementById('selflocation').addEventListener('click', function(){
    alert(window.self.location);
});
document.getElementById('selfhref').addEventListener('click', function(){
    alert(window.self.location.href);
});

document.getElementById('top').addEventListener('click', function(){
    alert(window.top);
});
document.getElementById('toplocation').addEventListener('click', function(){
    alert(window.top.location);
});
document.getElementById('tophref').addEventListener('click', function(){
    alert(window.top.location.href);
});

document.getElementById('replace').addEventListener('click', function(){
    if(window.top !== window.self){
        window.top.location.href = window.self.location.href;
        console.log('You replace successfully!');
    }else{
        console.log('You don\'t need replace, i\'m top!');
    }
});
</script>


五、总结

若想页面跳出iframe在里面加上下面这段代码即可。

if(window.top !== window.self){ //若自身窗口不等于顶层窗口
    window.top.location.href = window.self.location.href; //顶层窗口跳转到自身窗口
}

JavaScript通过preventDefault()使input[type=text]禁止输入但保留光标

一、说明

取消事件的默认动作。

该方法将通知 Web 浏览器不要执行与事件关联的默认动作(如果存在这样的动作)。例如,如果 type 属性是 “submit”,在事件传播的任意阶段可以调用任意的事件句柄,通过调用该方法,可以阻止提交表单。注意,如果 Event 对象的 cancelable 属性是 fasle,那么就没有默认动作,或者不能阻止默认动作。无论哪种情况,调用该方法都没有作用。

二、语法

event.preventDefault()

三、示例

3.1 阻止<a>元素跳转

<a href="http://www.mazey.net/baby/blog" target="_blank" id="a-prevent">点击我看会不会跳转</a>
<script>
document.getElementById('a-prevent').addEventListener('click',function(e){
    var eObj = e || window.event;
    eObj.preventDefault();
});
</script>

点击我看会不会跳转

另外可以通过return false;来阻止a元素跳转事件。

<script>
    function preventGO(){
        return false;
    }
</script>
<a href="http://www.mazey.net/baby/blog/" onclick="return false;">点击我看会不会跳转1</a><br />
<a href="http://www.mazey.net/baby/blog/" onclick="preventGO();">点击我看会不会跳转2</a><br />
<a href="http://www.mazey.net/baby/blog/" onclick="return preventGO();">点击我看会不会跳转3</a>

点击我看会不会跳转1
点击我看会不会跳转2
点击我看会不会跳转3

3.2 禁止<input>元素键盘输入

<input type="text" id="input-prevent" placeholder="试试能不能输入" />
<script>
document.getElementById('input-prevent').addEventListener('keypress',function(e){
    var eObj = e || window.event;
    eObj.preventDefault();
});
</script>


CSS3边框border-radius

一、官方解释

设置或检索对象使用圆角边框。提供2个参数,2个参数以“/”分隔,每个参数允许设置1~4个参数值,第1个参数表示水平半径,第2个参数表示垂直半径,如第2个参数省略,则默认等于第1个参数。

水平半径:如果提供全部四个参数值,将按上左(top-left)、上右(top-right)、下右(bottom-right)、下左(bottom-left)的顺序作用于四个角。

如果只提供一个,将用于全部的于四个角。

如果提供两个,第一个用于上左(top-left)、下右(bottom-right),第二个用于上右(top-right)、下左(bottom-left)。

如果提供三个,第一个用于上左(top-left),第二个用于上右(top-right)、下左(bottom-left),第三个用于下右(bottom-right)。

垂直半径也遵循以上4点。

对应的脚本特性为borderRadius。

二、例子

2.1 四个参数值

<div style="width: 100px;height: 100px;border:50px solid red;border-radius: 50px;"></div>
<div style="width: 100px;height: 100px;border:50px solid red;border-radius: 100px;"></div>
<div style="width: 100px;height: 100px;border:50px solid red;border-radius: 50px 100px;"></div>
<div style="width: 100px;height: 100px;border:50px solid red;border-radius: 10px 30px 50px 100px;"></div>

所以border-radius里面的参数应该代表的是四个角上圆的半径。

2.2 百分比

<div style="width: 100px;height: 100px;border:50px solid red;border-radius: 25%;"></div>
<div style="width: 100px;height: 100px;border:50px solid red;border-radius: 50%;"></div>

2.3 水平半径/垂直半径

<div style="width: 100px;height: 200px;border:50px solid red;border-radius: 100px/150px;"></div>
<div style="width: 100px;height: 200px;border:50px solid red;border-radius: 200px/300px;"></div>
<div style="width: 100px;height: 200px;border:50px solid red;border-radius: 200px/200px;"></div>

这里的半径全等于本身宽度(width/2)+半径宽度(border-width/2)即为一个椭圆。另外半径最多渲染宽度(width/2)+半径宽度(border-width/2)的值,超过的按比例值来算。

淘米的正确姿势

  1. 不放水筛一下,筛出来的粉末状就是大米的杂质或米虫的排泄物。

  2. 凉水均匀缓慢地淘洗,浮在水面上的虫和大米不要,不要用流水或热水进行淘洗,以防营养流失。

  3. 淘米的前后均不应浸泡,如果淘米后浸泡,应将浸泡米的水和米一同下锅煮饭。

  4. 清水淘洗2~3遍即可下锅煮饭。

如何避免与人争论无意义的事情

有时候和自己观点不和的人争论一些事情,恰巧对方还很会打感情牌,这样的争论其实从开口的那一刻起你就输了。
最好的办法就是靠自己的“直觉”避免与这样的人接触,这是一件“熟能生巧”的事情。
或者,在开始的时候就“认输”,承认自己的“失败”,夸大对方的“成功”,“皆大欢喜”。:D

文艺女青年这种病,生个孩子就好了 – 苏美

讲述一位大龄妇女在孕、产、育过程中的心路历程,吐槽了当今文艺女青年的种种特征,强调自己怀孕后就脱离了文艺女青年的范畴。全文过度强调女权主义,好像先生在家中的地位一文不值,于是我猜测要么先生真的没用,要么夫妻关系不和谐需要靠孩子维系,要么作者过于自负放大了自己在家中的地位。另外,作者在生完孩子后确实治好了“文艺女青年”这种病,因为她患上了一种新病,叫“文艺女中年”。

2015年1月第1版

恕我直言,男性社交场合的大多数荤段子和吹牛逼一样,既无智商含量,也无情感含量。在单身时,我还会为了礼节、讨巧或放电而甘当人肉笑声机。

2015年1月第1版第44页

在这个问题上,除了正确的废话,简直没什么可说的,假如你妈妈正在嫂子家当婆婆,你就偏袒着婆婆;假如你姐姐正在当儿媳妇忍受婆婆,你就向着儿媳妇。屁股决定脑袋,人就是经验和偏见的总和,不可能提着头发把自己提出地球之外去。

2015年1月第1版第184页

这当然是我的错,没有严格按照天秤座的特征去自重,长出完美、优雅、平衡感强等基本特色。

不过说实话,我很尊重笃信星座的人。在我看来,这和相信虚无主义或上帝或藏传佛教没什么两样,都是在混沌的世界里做一个标记,好让自己不迷路。

2015年1月第1版第192页

不,我从来没打算过丁克,也没打算不丁克 – 我只是一个没有任何打算的人。

2015年1月第1版第195页

“你年纪也不小了”,这是我们生孩子的理由…

可是我们谁也不会说“你年纪也不小了,去一趟巴黎吧”“你年纪也不小了,掌掴一遍大老板吧”。“你年纪也不小了,生个孩子吧”和“你年纪不小了,找个人嫁了吧”里面所隐含的意思是,过了这个年纪,这事情就不好办了。

2015年1月第1版第197页

当然了,“推荐”并不一定是支持,也有“大家快来看脑残”的意思。

2015年1月第1版第202页

有的人结婚了才发现婚姻不适合自己,可以选择离婚;

有些人工作了发现工作不适合自己,于是辞掉工作当个江湖神仙;

有些人出家了发现舍不得尘缘,于是蓄发又还俗了;

有些人投身科学发现不能解决终极问题,于是转回头又信仰上帝了;

虽然走了弯路,但至少兜兜转转总能走回头路。可我没看过哪个女人生完了发现自己不适合当妈妈然后还能塞回去的 – 当然也有一甩手跑掉的。

还是那句话:代价太大。

2015年1月第1版第234页

自由的灵魂

我始终认为整日念叨“你年纪也不小了…”“你现在不…以后…”的长辈和那些鼓吹“有些事情现在不做以后就…”“在不…我们就…”“趁着…不…就不是完整的…”的年轻人是一类人;

整日里忽悠人“等你到了…年纪你就懂了,你现在就要…”的长辈和总给你画饼“现在拼命干,以后…”的老板也没有本质上的区别。

从小被灌输着在这个关系社会生存,不会喝酒抽烟打牌是混不下去的,就在今年春节那天晚上我困不行要去睡觉时,家里打牌缺人,我妈还拉着我说“你也好学学打牌了”。

可我就是不喜欢喝酒抽烟打牌,这世上只有一种方法可以让我做自己不喜欢的事,那就是【给我钱】,不然我永远不会为了附和别人随大流做自己不想做的事情。我至今也不明白,这些人为什么要花钱做伤害自己的事情,伤害的越深好像就越牛X似的,我无数次看到身边一些人喝的烂醉如泥不省人事,不断的挑战着自己身体的极限。

一个连自己的身体都不尊重的人,就算他看再多的风景,去再多的地方,读再多的书,他的灵魂都脏的洗不干净。