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

推荐订阅源

博客园 - 叶小钗
云风的 BLOG
云风的 BLOG
G
Google Developers Blog
S
SegmentFault 最新的问题
罗磊的独立博客
Hugging Face - Blog
Hugging Face - Blog
美团技术团队
爱范儿
爱范儿
博客园 - 三生石上(FineUI控件)
H
Hackread – Cybersecurity News, Data Breaches, AI and More
D
DataBreaches.Net
F
Fortinet All Blogs
TaoSecurity Blog
TaoSecurity Blog
D
Docker
C
Cybersecurity and Infrastructure Security Agency CISA
K
Kaspersky official blog
宝玉的分享
宝玉的分享
腾讯CDC
Google Online Security Blog
Google Online Security Blog
Recorded Future
Recorded Future
T
The Exploit Database - CXSecurity.com
T
The Blog of Author Tim Ferriss
V
V2EX
S
Securelist
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
C
CERT Recently Published Vulnerability Notes
A
Arctic Wolf
Scott Helme
Scott Helme
L
LINUX DO - 热门话题
Y
Y Combinator Blog
P
Proofpoint News Feed
T
Tor Project blog
AWS News Blog
AWS News Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
The Last Watchdog
The Last Watchdog
博客园 - 聂微东
T
Threat Research - Cisco Blogs
B
Blog
Attack and Defense Labs
Attack and Defense Labs
L
Lohrmann on Cybersecurity
C
CXSECURITY Database RSS Feed - CXSecurity.com
阮一峰的网络日志
阮一峰的网络日志
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
IT之家
IT之家
N
News and Events Feed by Topic
博客园 - 司徒正美
H
Help Net Security
C
Cisco Blogs
C
Check Point Blog
S
Secure Thoughts

博客园 - 重粒子

文件在线预览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;
	}
}