惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
CXSECURITY Database RSS Feed - CXSecurity.com
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园_首页
博客园 - 【当耐特】
小众软件
小众软件
A
About on SuperTechFans
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Martin Fowler
Martin Fowler
M
MIT News - Artificial intelligence
Vercel News
Vercel News
爱范儿
爱范儿
Google DeepMind News
Google DeepMind News
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
T
Threatpost
人人都是产品经理
人人都是产品经理
H
Help Net Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
L
LINUX DO - 热门话题
B
Blog
F
Full Disclosure
P
Proofpoint News Feed
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
Threat Research - Cisco Blogs
L
LangChain Blog
博客园 - Franky
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Project Zero
Project Zero
I
InfoQ
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
The Cloudflare Blog
V
Vulnerabilities – Threatpost
云风的 BLOG
云风的 BLOG
C
Cyber Attacks, Cyber Crime and Cyber Security
C
Check Point Blog
K
Kaspersky official blog
WordPress大学
WordPress大学
腾讯CDC
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
S
Securelist
T
Tenable Blog
N
News and Events Feed by Topic
The GitHub Blog
The GitHub Blog
W
WeLiveSecurity
Stack Overflow Blog
Stack Overflow Blog
O
OpenAI News
Blog — PlanetScale
Blog — PlanetScale
量子位
Simon Willison's Weblog
Simon Willison's Weblog
T
Tor Project blog
P
Proofpoint News Feed

博客园 - 重粒子

文件在线预览doc,docx转换pdf(一) vue中集成pdfjs自定义分页 使用 vs code 搭建vue项目(一) post文件下载 css 文本超出2行就隐藏并且显示省略号 js监听全屏下的esc事件 ionic 侧栏菜单用法 weblogic获取应用目录路径(war包) 使用pdf.js预览实现读取服务器外部文件 js禁用浏览器后退 java批量将多文件打包成zip格式 Angularjs自定义指令计算浏览器高度 AngularJS封装webupload实现文件夹上传 jquery监听滚动条 pdf预览(pdf.js) (钉钉)第三方WEB网站扫码登录 $q的基本用法 Jersey RESTful WebService框架学习(八)文件下载防乱码 巧用 Jersey RESTful WebService框架解决文件上传乱码
js实现全屏和缩放
重粒子 · 2018-04-25 · via 博客园 - 重粒子
/**
 * @description 简单的浏览器检查结果。 * `webkit`
 *              webkit版本号,如果浏览器为非webkit内核,此属性为`undefined`。 * `chrome`
 *              chrome浏览器版本号,如果浏览器为chrome,此属性为`undefined`。 * `ie`
 *              ie浏览器版本号,如果浏览器为非ie,此属性为`undefined`。 * `firefox`
 *              firefox浏览器版本号,如果浏览器为非firefox,此属性为`undefined`。 * `safari`
 *              safari浏览器版本号,如果浏览器为非safari,此属性为`undefined`。 * `opera`
 *              opera浏览器版本号,如果浏览器为非opera,此属性为`undefined`。
 * 
 * @property {Object} [browser]
 */
var browser = function() {
	var ua = navigator.userAgent;
	var ret = {}, webkit = ua.match(/WebKit\/([\d.]+)/), chrome = ua
			.match(/Chrome\/([\d.]+)/)
			|| ua.match(/CriOS\/([\d.]+)/),

	ie = ua.match(/MSIE\s([\d\.]+)/) || ua.match(/Edge\/([\d.]+)/)
			|| ua.match(/(?:trident)(?:.*rv:([\w.]+))?/i), firefox = ua
			.match(/Firefox\/([\d.]+)/), safari = ua.match(/Safari\/([\d.]+)/), opera = ua
			.match(/OPR\/([\d.]+)/);

	webkit && (ret.webkit = parseFloat(webkit[1]));
	chrome && (ret.chrome = parseFloat(chrome[1]));
	ie && (ret.ie = parseFloat(ie[1]));
	firefox && (ret.firefox = parseFloat(firefox[1]));
	safari && (ret.safari = parseFloat(safari[1]));
	opera && (ret.opera = parseFloat(opera[1]));

	return ret;
};
function requestFullscreen() {
	var docElm = document.documentElement;
	if (browser().ie) {
		docElm.msRequestFullscreen();
		return false;
	}

	if (browser().chrome) {
		docElm.webkitRequestFullScreen();
		return false;
	}
	if (browser().firefox) {
		docElm.mozRequestFullScreen();
		return false;
	}
}
function exitFullscreen() {
	if (browser().ie) {
		document.msExitFullscreen();
		return false;
	}

	if (browser().chrome) {
		document.webkitCancelFullScreen();
		return false;
	}
	if (browser().firefox) {
		document.mozCancelFullScreen();
		return false;
	}
}