似乎在iOS 11和相应的Safari版本中有效的旧检测方法不再有效了。< br >我试过这个脚本:https://gist.github.com/cou929/7973956
,但它在iOS 12上的safari上不工作,在iOS 12上的Chrome 69上也不工作。
这个相当新的库也不适用于iOS 12浏览器:< br > https://github . com/may konn/js-detect-incognito-private-browsing-pay wall
那么iOS 12浏览器有什么解决方案吗?
BostonGlobe似乎有一个解决方案,但我不知道他们是如何做到的:< br > https://www . BostonGlobe . com/sports/redsox/2018/10/09/redsox/d66j 59 viz 1 qxyzlhi 18 l 8 l/story . html(如果你想以匿名/私人模式阅读bostonglobe.com的文章,你会看到一个要求你登录的屏幕)
//FOR IOS 12
var e = false;
if (window.localStorage && /Safari/.test(window.navigator.userAgent)) {
if (window.safariIncognito) {
e = true;
} else {
try {
window.openDatabase(null, null, null, null);
window.localStorage.setItem("test", 1)
} catch (t) {
e = true;
alert("PRIVATE");
}
}
void !e && (e = !1, window.localStorage.removeItem("test"))
}
Chrome开发工具=
// ./~/detect-private-browsing/index.js
function retry(isDone, next) {
var current_trial = 0, max_retry = 50, interval = 10, is_timeout = false;
var id = window.setInterval(
function() {
if (isDone()) {
window.clearInterval(id);
next(is_timeout);
}
if (current_trial++ > max_retry) {
window.clearInterval(id);
is_timeout = true;
next(is_timeout);
}
},
10
);
}
function isIE10OrLater(user_agent) {
var ua = user_agent.toLowerCase();
if (ua.indexOf('msie') === 0 && ua.indexOf('trident') === 0) {
return false;
}
var match = /(?:msie|rv:)\s?([\d\.]+)/.exec(ua);
if (match && parseInt(match[1], 10) >= 10) {
return true;
}
// MS Edge Detection from this gist: https://gist.github.com/cou929/7973956
var edge = /edge/.exec(ua);
if (edge && edge[0] == "edge") {
return true;
}
return false;
}
module.exports = {
detectPrivateMode: function(callback) {
var is_private;
if (window.webkitRequestFileSystem) {
window.webkitRequestFileSystem(
window.TEMPORARY, 1,
function() {
is_private = false;
},
function(e) {
console.log(e);
is_private = true;
}
);
} else if (window.indexedDB && /Firefox/.test(window.navigator.userAgent)) {
var db;
try {
db = window.indexedDB.open('test');
} catch(e) {
is_private = true;
}
if (typeof is_private === 'undefined') {
retry(
function isDone() {
return db.readyState === 'done' ? true : false;
},
function next(is_timeout) {
if (!is_timeout) {
is_private = db.result ? false : true;
}
}
);
}
} else if (isIE10OrLater(window.navigator.userAgent)) {
is_private = false;
try {
if (!window.indexedDB) {
is_private = true;
}
} catch (e) {
is_private = true;
}
} else if (window.localStorage && /Safari/.test(window.navigator.userAgent)) {
// One-off check for weird sports 2.0 polyfill
// This also impacts iOS Firefox and Chrome (newer versions), apparently
// @see bglobe-js/containers/App.js:116
if (window.safariIncognito) {
is_private = true;
} else {
try {
window.openDatabase(null, null, null, null);
} catch (e) {
is_private = true;
}
try {
window.localStorage.setItem('test', 1);
} catch(e) {
is_private = true;
}
}
if (typeof is_private === 'undefined') {
is_private = false;
window.localStorage.removeItem('test');
}
}
retry(
function isDone() {
return typeof is_private !== 'undefined' ? true : false;
},
function next(is_timeout) {
callback(is_private);
}
);
}
};
模式分析用于验证模式、可视化查数据分布和标识数据离群值。首先,在对象选项卡中选择一个集合或视图,然后点击 “分析模式”,或在数据查看器中点击 “分析”。 【注意】仅适用于 MongoDB。 【提示】模式分析配置文件(.nsatmongodb)保存于设置位置。 工具栏 选项或按钮 描述 筛选 筛选文档以进行分析。 投影 包括或排除字段以进行分析。 分析: 从集合中选择样本文档以进行分析。 分析 开始
模式分析用于验证模式、可视化查数据分布和标识数据离群值。首先,在对象选项卡中选择一个集合或视图,然后点击 ,或在数据查看器中点击 。 【注意】仅适用于 MongoDB。 【提示】模式分析配置文件(.nsatmongodb)保存于设置位置。 工具栏 选项或按钮 描述 筛选文档以进行分析。 包括或排除字段以进行分析。 分析: 从集合中选择样本文档以进行分析。 开始分析样本文档。 停止分析样本文档。 结
模式分析用于验证模式、可视化查数据分布和标识数据离群值。首先,在对象选项卡中选择一个集合或视图,然后点击 “分析模式”,或在数据查看器中点击 “分析”。 【注意】仅适用于 MongoDB。 【提示】模式分析配置文件(.nsatmongodb)保存于设置位置。 工具栏 选项或按钮 描述 筛选 筛选文档以进行分析。 投影 包括或排除字段以进行分析。 分析: 从集合中选择样本文档以进行分析。 分析 开始
所以,我在研究一个不和谐机器人。我正在使用on_message()事件,它可以在私人消息和服务器上工作。我想这只工作在私人信息,我不知道如何去做这件事。如果有人能帮助我,那就是拉阿德。
如何通过CBC或ECB模式检测邮件是否为加密? 我已经做了一个函数,它可以在AES 128 CBC或ECB中随机加密,我可以在明文和密文之间进行汉明,但与密码模式无关。 如何检测分组密码模式? 先谢谢你
有很多问题/答案有关的问题,但我有一个问题,非常接近其他问题,但在另一种意义上略有不同。不管怎样,它来了。 错误: 评论: 根据 C Primer 第 5 版第 2.44 页“声明为 constexpr 的变量是隐式的 const,必须通过常量表达式初始化:”。所以这很好。 标签 B -- 似乎对const的引用意味着引用是指一个const对象,而不允许进行修改,而"const引用"是指引用是co