Cra*_*att 13 html javascript php
我一直在使用Brave浏览器(https://www.brave.com/),我无法弄清楚如何判断用户是否使用Brave.我使用一个简单的文档来输出用户代理:
<script>document.write(navigator.userAgent);</script>
Run Code Online (Sandbox Code Playgroud)
我得到:
Mozilla/5.0(Windows NT 10.0; Win64; x64)AppleWebKit/537.36(KHTML,与Gecko一样)Chrome/49.0.2623.108 Safari/537.36
这在我的情况下并没有真正帮助我.有谁知道如何确定在PHP或JavaScript中使用Brave的人?谢谢!
Aey*_*oun 18
截至 2020 年 4 月,您可以使用此检测方法获得用户是否使用 Brave 的布尔答案:
(navigator.brave && await navigator.brave.isBrave() || false)
Run Code Online (Sandbox Code Playgroud)
And*_*rlo 10
有一种方法可以在没有任何 API 调用的情况下检查用户是否正在使用勇敢。我创建了以下函数,如果它勇敢,则返回 false 或 True
function isBrave() {
if (window.navigator.brave != undefined) {
if (window.navigator.brave.isBrave.name == "isBrave") {
return true;
} else {
return false;
}
} else {
return false;
}
}
document.getElementById("ans").innerHTML = isBrave();
Run Code Online (Sandbox Code Playgroud)
Is this Brave? <span id="ans"></span>
Run Code Online (Sandbox Code Playgroud)
小智 9
Kohjah Breese 的解决方案无法在 Android 上检测 Brave(例如 Chrome 被检测为 Brave)。但正如他所说,“如果你在 DuckDuckGo 中搜索 [我的用户代理是什么],他们会返回 Brave。” 然后你可以使用 Duckduckgo 的 API 来知道他们的浏览器是否是 Brave :
var request = new XMLHttpRequest()
request.open('GET', 'https://api.duckduckgo.com/?q=useragent&format=json', true)
request.onload = function () {
var data = JSON.parse(this.response)
var isBrave = data['Answer'].includes('Brave');
if(isBrave){
console.log( isBrave );
}
}
request.send()
Run Code Online (Sandbox Code Playgroud)
小智 7
Brave与Chrome具有相同的用户代理.但Chrome本身在窗口对象中添加了很多(目前为1768)特定于chrome的属性.其中之一是window.google.因此检测Brave非常简单(就像现在一样):
const ua = window.navigator.userAgent.toLowerCase();
const isChrome = /chrome|crios/.test(ua) && ! /edge|opr\//.test(ua)
const isBrave = isChrome && ! window.google;
Run Code Online (Sandbox Code Playgroud)
太勇敢了,哈哈.
勇敢的出现在窗口对象中有一些不同的对象。我不确定这些版本在Brave版本中有多连续,但是我在window.navigator对象中注意到了两个被屏蔽的地方:plugins和mimeTypes。由于Brave旨在成为一种隐私浏览器,因此我认为这很可能会保持空白。所以我的检查是检查那些长度。
请注意,您还需要先检查浏览器是否为台式机。似乎您无法检测到Brave Mobile浏览器;下面的代码将使用许多移动浏览器
var agent = navigator.userAgent.toLowerCase();
var isChrome = /chrome|crios/.test(agent) && ! /edge|opr\//.test(agent);
var isBrave = isChrome && window.navigator.plugins.length === 0 && window.navigator.mimeTypes.length === 0;
if(isBrave)
console.log( isBrave );
Run Code Online (Sandbox Code Playgroud)
如果您在DuckDuckGo中搜索[我的用户代理人],他们将返回Brave。如果打开附件的JS文件,则会发现可以检测Brave的精致浏览器检测。