“检测”;“一个标签”;javascript浏览器

“检测”;“一个标签”;javascript浏览器,javascript,Javascript,是否可以检测javascript中只有一个选项卡的浏览器 我们有一些功能可以在新标签页中打开链接,而一些移动设备在facebook、instagram、twitter或slack嵌入式浏览器中打开链接时会忽略这些链接,因为它是一个标签页浏览器,所以无法在新标签页中打开 到目前为止,我们正在使用用户代理进行检测,但我想知道是否有可能检测到与“选项卡”相关的内容 userAgent似乎是一条出路。但是我会有一个所有被排除的浏览器的数组,并检查它们是否存在于userAgent中。我看不到任何方法可以正

是否可以检测javascript中只有一个选项卡的浏览器

我们有一些功能可以在新标签页中打开链接,而一些移动设备在facebook、instagram、twitter或slack嵌入式浏览器中打开链接时会忽略这些链接,因为它是一个标签页浏览器,所以无法在新标签页中打开

到目前为止,我们正在使用用户代理进行检测,但我想知道是否有可能检测到与“选项卡”相关的内容


userAgent
似乎是一条出路。但是我会有一个所有被排除的浏览器的数组,并检查它们是否存在于
userAgent
中。我看不到任何方法可以正确地检测到这一点。Navigator对象似乎不会以任何方式公开该信息,因此您最多只能尝试使用
窗口打开一个新选项卡。打开
,并尝试从返回值中得出结论……但如果没有适当的用户交互,您无法自动执行此操作,因为弹出窗口拦截器将捕获它。如果您的链接正在使用
target=“\u blank”
在新选项卡中打开,我想您可以使用一个使用window.open的点击处理程序来附加它,然后至少能够检查这一点在之后是否有效……可能有一种方法可以从锚定标记打开本机浏览器。在这种情况下,您可以像现在这样近似用户代理设备,并根据结果相应地修改锚定。不过,不确定在浏览器和硬件上对该功能的支持是什么。
userAgent
似乎是一条可行之路。但是我会有一个所有被排除的浏览器的数组,并检查它们是否存在于
userAgent
中。我看不到任何方法可以正确地检测到这一点。Navigator对象似乎不会以任何方式公开该信息,因此您最多只能尝试使用
窗口打开一个新选项卡。打开
,并尝试从返回值中得出结论……但如果没有适当的用户交互,您无法自动执行此操作,因为弹出窗口拦截器将捕获它。如果您的链接正在使用
target=“\u blank”
在新选项卡中打开,我想您可以使用一个使用window.open的点击处理程序来附加它,然后至少能够检查这一点在之后是否有效……可能有一种方法可以从锚定标记打开本机浏览器。在这种情况下,您可以像现在这样近似用户代理设备,并根据结果相应地修改锚定。不过,不确定在整个浏览器和硬件中对此的支持是什么样子的。
this.isFacebookBrowser = function (params) {

            var ua = navigator.userAgent || navigator.vendor || window.opera;
            return (ua.indexOf("FBAN") > -1) || (ua.indexOf("FBAV") > -1);
        };