【亚洲必赢官网】浏览器类型及版本音讯检测,关闭浏览器时提示onbeforeunload事件

仿真来电:HTML5振动API的恶意使用

2014/01/16 · HTML5 · 3
评论 ·
HTML5

本文由 伯乐在线 –
梧桐
翻译。未经许可,禁止转载!
英文出处:Terence
Eden。欢迎出席翻译组。

一个新的API出来了。HTML5
(很快)将协助用户设备振动。那分明是很风趣的事体,比如它可以用户触发提示,进步游戏体验,以及任何各样好玩的工作,例如透过振动发送摩斯代码。

到近来甘休,Chrome(以及其余Android浏览器)要动用地方新闻、视频头、地址簿等资源必须申请权限。这是一种安全措施幸免你的个人新闻在未授权的情事下走漏。

而现在使用HTML5振动API并不会在显示屏上触发警告。因为相似认为用那么些功效大概向来不损害,毕竟在现实中它能干的坏事无非是绵绵消耗电量。事实就是这么概括吗?我不敢肯定。

本文由 伯乐在线 –
梧桐【亚洲必赢官网】浏览器类型及版本音讯检测,关闭浏览器时提示onbeforeunload事件。
翻译。未经许可,禁止转发!
英文出处:Terence
Eden。欢迎加入翻译组。

onbeforeunload事件 它是如此用的:

鉴于各浏览器对css以及js协理的差别性,大家在做前端开发时,经常须求先检测浏览器的种类及版本,然后会对个其余差别性来写代码!
上边的checkBrowser()函数紧要检测了三种浏览器(IE, firefox,
chrome),其余的浏览器的检测有趣味的恋人可以自行添加检测代码!
HTML部分代码: (页面加载时举行检测函数)
view sourceprint?1 <body onload=”checkBrowser()”> 

邪念

咱俩都看过那种无耻的广告做得跟Windows弹出窗一模一样,它们日常暴发一个正值的连串请求:更新Java或看似的。

只要一个黑心网页弹出一个仿真的系统提示并还要振动,你有多大的自信心能分别一个合法的弹出框和一个png图片?毕竟手机振动了,你就会以为它是开诚布公的系统提示。

亚洲必赢官网 1

(图1)

那会儿你是收取了一个“空投”炸弹,照旧说网页在跟你开个小玩笑?

页面广告自动播放声音自然就很烦人了。自动振动跟它比起来毫不逊色。回顾一下你在满显示器搜索那一个推销保证的广告。

时下震荡的强度还不可能说了算,只可以控制持续时间。当然通过社团恶意代码去突破没打补丁的浏览器也不是不容许的,甚至足以让电机持续高负荷运转直到损坏。

一个新的API出来了。HTML5
(很快)将支撑用户设备振动。那显明是很风趣的作业,比如它可以用户触发提醒,提高游戏体验,以及其余种种幽默的事情,例如经过振动发送摩斯代码。

复制代码 代码如下:

2     <p id=”userAgent”></p> 

仿真来电

借使与HTML5
奥迪(Audi)o一起使用,完全可以创立一个很实际的假冒伪劣”来电“,既有震动也有铃声。一旦”接听“,页面就足以播放一段音频:”喂,尽快回打给自己,我的数码是“一个吸费号码”。接下来还足以接纳URI自动打开拨号界面。

亚洲必赢官网 2

(图2)

您能告诉我上边说的是实事求是的来电吗?倘使您够细致或许会发现。但只要页面正在播放你的默许铃声,然后设备还在震荡,这时你就很可能迷糊。假使和WebRTC呼叫绑定,那其实你看到的就是一个细致布局的陷阱。

到近日为止,Chrome(以及别的Android浏览器)要使用地点新闻、视频头、地址簿等资源必须申请权限。那是一种安全措施预防你的个人消息在未授权的处境下败露。

<script language=”javascript”> 
    g_blnCheckUnload = true; 
    function RunOnBeforeUnload() {     
        if (g_blnCheckUnload) {
        window.event.returnValue = ‘You will lose any unsaved
content’;       
        }   
    }
</script>
<body  onbeforeunload=”RunOnBeforeUnload()”>
</body>

3     <p id=”browser”></p> 

视频演示

正文作者还录了一段录像,放在Youtube上了。

而现在使用HTML5振动API并不会在屏幕上触发警告。因为相似认为用这几个职能大致从未损害,毕竟在现实中它能干的坏事无非是绵绵消耗电量。事实就是这么概括吗?我不敢肯定。

那样每一回关闭浏览器窗口或涮新页面时,都要触发onbeforeunload那几个事件。

4 </body>

源代码

上边是一个很基本的例子,你可以在手机上试验眨眼之间间。(或点击此处看示例)

JavaScript

<body> <script type="text/javascript">
navigator.vibrate = navigator.vibrate || navigator.webkitVibrate ||
navigator.mozVibrate || navigator.msVibrate; navigator.vibrate([1000,
500, 1000, 500, 1000, 500, 1000, 500, 1000, 500, 1000, 500, 1000,
500]); </script> <img width="100%"
src="phone.png"
onclick="window.location.href='tel:09098790815';"
/> <audio autoplay="autoplay"> <source
src="ring.mp3" /> </audio> </body>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
  navigator.vibrate = navigator.vibrate ||
       navigator.webkitVibrate ||
       navigator.mozVibrate ||
       navigator.msVibrate;
 
  navigator.vibrate([1000, 500, 1000, 500, 1000, 500, 1000, 500, 1000, 500, 1000, 500, 1000, 500]);
&lt;/script&gt;
&lt;img width=&quot;100%&quot; src=&quot;phone.png&quot; onclick=&quot;window.location.href=&#039;tel:09098790815&#039;;&quot; /&gt;
&lt;audio autoplay=&quot;autoplay&quot;&gt;  
  &lt;source src=&quot;ring.mp3&quot; /&gt;  
&lt;/audio&gt;
&lt;/body&gt;

现阶段唯有Android平台的Firefox支持,但肯定其余浏览器将会跟进。

邪念

大家都看过那种无耻的广告做得跟Windows弹出窗一模一样,它们平时暴发一个正值的系统请求:更新Java或近乎的。

要是一个黑心网页弹出一个仿真的种类提醒并还要振动,你有多大的自信心能分别一个官方的弹出框和一个png图片?毕竟手机振动了,你就会认为它是真实的系统提醒。

亚洲必赢官网 3

(图1)

那时候你是收到了一个“空投”炸弹,照旧说网页在跟你开个小玩笑?

页面广告自动播放声音自然就很烦人了。自动振动跟它比起来毫不逊色。回顾一下您在满荧屏搜索这一个推销保证的广告。

现阶段震荡的强度还无法决定,只好控制持续时间。当然通过社团恶意代码去突破没打补丁的浏览器也不是不容许的,甚至可以让电机持续高负荷运转直到损坏。

摘要如下:onbeforeunload事件:

javascript部分代码:
检测的规律主要根据浏览器的用户代理报头nanigator.userAgent中提取到浏览器和档次及版本音信,利用正则表明式可以很不难的满意大家的需求,如对正则表明式不了然,可参照此文(正则表明式)
view sourceprint?01 function check(reg) { 

提示:

Firefox是Andriod平台上绝无仅有协理振动的。其他的比如三星(Samsung)浏览器,Chrome或者Opera都不支持。Iphone也不援助。Windows
Phone或HTC根本没人在乎的,所以我就不测试了。

当页面使用振动API的时候,Firefox方今并不会申请权限。

您认为浏览器在抖动前是还是不是应该有警告?仍然说那种风险太低?我想那要看那么些骗子公司是还是不是会动用那一点了,或者要看用户是还是不是反对了。

更新:
感谢Reddit和HackerNews地点的褒贬,BB10就像也支撑振动API,Windows
Phone不辅助。

赞 收藏 3
评论

假冒伪劣来电

假若与HTML5
奥迪(Audi)o一起使用,完全能够创造一个很实际的虚假”来电“,既有震动也有铃声。一旦”接听“,页面就可以播放一段音频:”喂,尽快回打给自身,我的编号是“一个吸费号码”。接下来仍可以使用URI自动打开拨号界面。

亚洲必赢官网 4

(图2)

您能告诉自己下边说的是真正的来电吗?如果您够细致或许会发觉。但万一页面正在播放你的默许铃声,然后设备还在震动,那时你就很可能迷糊。即使和WebRTC呼叫绑定,这其实你看来的就是一个缜密布局的骗局。

注:三大主流浏览器中firefox和IE都协理onbeforeunload事件,opera没有协理。

02     var ug = navigator.userAgent.toLowerCase(); 

至于作者:梧桐

亚洲必赢官网 5

(新浪腾讯网:@jakiewoo_vp9)

个人主页 ·
我的篇章 ·
13

亚洲必赢官网 6

录像演示

正文小编还录了一段视频,放在Youtube上了。

用法:

03     return reg.test(ug); 

源代码

下边是一个很基本的事例,你可以在二弟大上考试刹那间。(或点击那边看示例)

<body> <script type="text/javascript">
navigator.vibrate = navigator.vibrate || navigator.webkitVibrate ||
navigator.mozVibrate || navigator.msVibrate; navigator.vibrate([1000,
500, 1000, 500, 1000, 500, 1000, 500, 1000, 500, 1000, 500, 1000,
500]); </script> <img width="100%"
src="phone.png"
onclick="window.location.href='tel:09098790815';"
/> <audio autoplay="autoplay"> <source
src="ring.mp3" /> </audio> </body>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
&lt;body&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
  navigator.vibrate = navigator.vibrate ||
       navigator.webkitVibrate ||
       navigator.mozVibrate ||
       navigator.msVibrate;
 
  navigator.vibrate([1000, 500, 1000, 500, 1000, 500, 1000, 500, 1000, 500, 1000, 500, 1000, 500]);
&lt;/script&gt;
&lt;img width=&quot;100%&quot; src=&quot;phone.png&quot; onclick=&quot;window.location.href=&#039;tel:09098790815&#039;;&quot; /&gt;
&lt;audio autoplay=&quot;autoplay&quot;&gt;  
  &lt;source src=&quot;ring.mp3&quot; /&gt;  
&lt;/audio&gt;
&lt;/body&gt;

此时此刻只有Android平台的Firefox援救,但必然其余浏览器将会跟进。

object.onbeforeunload = handler
<element onbeforeunload = “handler” … ></element>
讲述:
事件触发的时候弹出一个有规定和撤回的对话框,确定则离开页面,裁撤则持续待在本页。
handler可以设一个重回值作为该对话框的显示文本。

04 } 

提示:

Firefox是Andriod平台上唯一扶助振动的。其余的比如说三星(三星)浏览器,Chrome或者Opera都不帮衬。Iphone也不支持。Windows
Phone或One plus根本没人在乎的,所以我就不测试了。

当页面使用振动API的时候,Firefox如今并不会申请权限。

你觉得浏览器在震动前是不是应当有警示?依然说这种风险太低?我想那要看那多少个骗子集团是不是会采纳那一点了,或者要看用户是不是反对了。

更新:
感谢Reddit和HackerNews上面的评头品足,BB10犹如也支撑振动API,Windows
Phone不扶助。

赞 收藏 3
评论

触发于:

05  

有关小编:梧桐

亚洲必赢官网 7

(博客园博客园:@jakiewoo_vp9)

个人主页 ·
我的稿子 ·
13

关闭浏览器窗口
通过地方栏或储藏夹前往其余页面的时候
点击重回,前进,刷新,主页其中一个的时候
点击 一个前去其余页面的url连接的时候
调用以下任意一个事件的时候:click,document write,document
open,document close,window close ,window navigate ,window
NavigateAndFind,location replace,location reload,form submit.
当用window
open打开一个页面,并把本页的window的名字传给要开辟的页面的时候。
双重赋予location.href的值的时候。
经过input type=”submit”按钮提交一个所有指定action的表单的时候。
可以用在偏下因素: BODY, FRAMESET, window

06 function checkBrowser() { 

阳台支持: IE4+/Win, Mozilla 1.7a+, Netscape 7.2+, Firefox0.9+

07     var ug = navigator.userAgent.toLowerCase(); 

你或许感兴趣的文章:

  • JavaScript无提醒关闭窗口(包容IE/Firefox/Chrome)
  • js关闭浏览器窗口及检查浏览器关闭事件
  • 在firefox和Chrome下关闭浏览器窗口无效的解决方式
  • 闭馆浏览器输入框自动补齐
    包容IE,FF,Chrome等主流浏览器
  • 关门浏览器窗口弹出提醒框并且可以操纵其失效
  • 哪些落实chrome浏览器关闭页面时弹出“确定要相差此面吗?”

08     var userAgent = document.getElementById(“userAgent”); 

09     userAgent.innerHTML = “浏览器的用户代理报头:” + ug; 

10  

11     var browserType = “”; 

12     var ver = “”; 

13       

14     //检测IE及版本 

15     var IE = ug.match(/msies*d.d/);
//提取浏览器类型及版本消息,注match()方法重回的是数组而不是字符串 

亚洲必赢官网,16     var isIE = check(/msie/); 

17     if(isIE) { 

18         browserType = “Internet Explorer”; 

19         ver = IE.join(” “).match(/[0-9]/g).join(“.”);
//先用join()方法转化为字符串,然后用match()方法匹配到版本音信,再用join()方法转化为字符串 

20     } 

21       

22     //检测chrome及版本 

23     var chrome = ug.match(/chrome/d.d/gi); 

24     var isChrome = check(/chrome/); 

25     if(isChrome) { 

26         browserType = “Chrome”; 

27         ver = chrome.join(” “).match(/[0-9]/g).join(“.”); 

28     } 

29       

30     //检测firefox及版本 

31     var firefox = ug.match(/firefox/d.d/gi); 

32     var isFirefox = check(/firefox/); 

33     if(isFirefox) { 

34         browserType = “Firefox”; 

35         ver = firefox.join(” “).match(/[0-9]/g).join(“.”); 

36     } 

37  

38     var browser = document.getElementById(“browser”); 

39     browser.innerHTML = “您正在采纳的浏览器为:” + browserType +
“<span style=padding-left:15px;>版本为:</span>” + ver; 

40 }

PS:各浏览器的用户代理音信如下:
view sourceprint?IE:Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1;
Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR
3.0.30729; Media Center PC 6.0; InfoPath.3; BOIE9;ZHCN); 

firefox:Mozilla/5.0 (Windows NT 6.1; rv:2.0) Gecko/20100101
Firefox/4.0; 

chrome:Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US)
AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.98 Safari/534.13

下…

网站地图xml地图