小编Sam*_*ley的帖子

如何检测CSS过滤器?

在某些浏览器中,包括Chrome稳定版,您可以这样做:

h3 {
  -webkit-filter: grayscale(1);
  filter: grayscale(1);
}
Run Code Online (Sandbox Code Playgroud)

你不知道吗,h1将完全以灰度渲染.旧的一切都是新的.

无论如何 - 有没有人知道任何特征检测方法?

如果fil filter不起作用,我需要能够应用其他样式.

css browser-feature-detection

16
推荐指数
2
解决办法
5954
查看次数

检测iOS是否正在使用webapp

我想知道是否可以检测iOS用户是否正在使用webapp,或者只是使用safari浏览器访问正常方式.

我想要实现的原因是,当用户点击链接时,在iOS webapp上,他将被重定向到Safari浏览器.所以我使用以下解决方法让他留在webapp(阻止切换到safari浏览器).

$( document ).on("click",".nav ul li a",
        function( event ){

        // Stop the default behavior of the browser, which
        // is to change the URL of the page.
        event.preventDefault();

        // Manually change the location of the page to stay in
        // "Standalone" mode and change the URL at the same time.
        location.href = $( event.target ).attr( "href" );

        }
    );
Run Code Online (Sandbox Code Playgroud)

但我希望这种解决方法只在用户使用webapp时发生,我希望它对webapp用户有条件.所以不在默认的safari浏览器上.

html javascript jquery ios browser-feature-detection

16
推荐指数
2
解决办法
7864
查看次数

如何检测移动浏览器是否会显示"本机"下拉控件?

我想检查浏览器是否会显示特殊的"本机"样式下拉列表(例如iPhone和iPod),而不是通过浏览器名称进行特定检查.是否可以以更通用的方式检查该功能而无需按名称查看用户代理?

我想这样做以确定是否呈现标准或更强大的下拉控件.

javascript browser-feature-detection

15
推荐指数
1
解决办法
1341
查看次数

检测浏览器是否将<select multiple>显示为模式对话框

有没有办法使用JavaScript来检测给定的浏览器是将焦点<select multiple>元素呈现为弹出窗口还是仅作为内联框?

在某些平台上,例如Android浏览器和iOS Safari,可以通过比较,例如,高度来检测弹出窗口的使用情况.

<select multiple>
  <option>a</option>
  <option>a</option>
  <option>a</option>
  <option>a</option>
  <option>a</option>
<select>
Run Code Online (Sandbox Code Playgroud)

<select multiple>
  <option>a</option>
<select>
Run Code Online (Sandbox Code Playgroud)

高度是相同的,因为<select>s减少到一个带有下拉按钮的盒子.但是在其他设备上,例如Playbook,这个测试会给出误报,因为Playbook浏览器渲染了扩展的选择列表,在点击时显示弹出窗口.

任何人都可以想出一种可靠的方法来确定是否显示本机选择弹出窗口?

html javascript select cross-browser browser-feature-detection

13
推荐指数
1
解决办法
1216
查看次数

如何检测`focusin`支持?

感谢Perfection kills,我们可以使用以下JavaScript来检测事件支持:

function hasEvent(ev) {
    var elem = document.createElement('a'),
        type = 'on' + ev,
        supported = elem[type] !== undefined;
    if (!supported) {
        elem.setAttribute(type, 'return;');
        supported = typeof elem[type] === 'function';
    }
    elem = null;
    return supported;
}
Run Code Online (Sandbox Code Playgroud)

这只适用于我需要的时间:检测mouseenter支持; hasEvent('mouseenter')将在Chrome,Firefox等中返回false,应该如此.

但现在我正在尝试"修复"不支持focusinfocusout事件的浏览器.根据PPK,这基本上只是Firefox.不幸的是,Chrome和Safari被列为"不完整"支持,原因如下:

Safari和Chrome仅使用addEventListener触发这些事件; 不是传统的注册.

一般来说,这很好; addEventListener反正我只会用.但是,它确实意味着检测支持通过elem.onfocusin !== undefined将不起作用.我测试了它,这是真的:

<p>Do I support <a href="#">focusin</a>?</p>

<script>
var elem = document.getElementsByTagName('p')[0];

// hasEvent method defined here
function listener() { …
Run Code Online (Sandbox Code Playgroud)

javascript javascript-events focusin browser-feature-detection

13
推荐指数
1
解决办法
4897
查看次数

如何以编程方式检测浏览器如何处理window.close()?

不同的Web浏览器以不同方式处理window.close()函数.IE会提示用户进行确认,而Firefox和Safari只是不尊重它,除非最初使用Javascript打开窗口并在控制台中显示一条消息.

我支持的组织内部使用的第三方Web应用程序在类似向导的系列页面的末尾显示"关闭"按钮.这适用于IE,这是我们的大多数用户使用的.但是,这显然在FF中失败了.我宁愿保留按钮并使用Javascript来优雅地降级UI,方法是不在任何不执行window.close()的浏览器中显示该按钮.

根据经验,我尝试检查浏览器功能,而不是尽可能依赖基于浏览器检测的硬编码策略.有没有办法以编程方式检查window.close()的支持,以便我可以确定是否应该首先显示该按钮?

javascript browser browser-detection browser-feature-detection

13
推荐指数
1
解决办法
1870
查看次数

如何检测ES6发生器?

我真的很喜欢ES6发电机.有没有办法在浏览器中检测生成器支持?我知道目前生成器可能不在很多浏览器中(或者可能根本没有浏览器),但这对我来说是可以的.

我试过了:

try {
  function *(){}
} catch(err) {
  console.log("No generators");
}
Run Code Online (Sandbox Code Playgroud)

但它似乎没有用.

如何在浏览器中检测对ES6生成器的支持?

javascript browser generator ecmascript-harmony browser-feature-detection

13
推荐指数
2
解决办法
1346
查看次数

应用程序被iOS IPv6网络拒绝

昨天,我提交了我的应用程序进行审核,但是我收到了Apple发来的消息:

我们在连接到IPv6网络的Wi-Fi上运行iOS 9.3.2的iPad iPhone上查看了应用程序中的一个或多个错误.

具体来说,经过审核,我们发现应用程序仍然遇到加载问题,无法查看应用程序内容.

我的应用程序使用离子框架,我该如何解决这个问题呢?

我已经使用域来访问我的服务器,但这个问题仍然存在.

ipv6 ios ionic-framework

13
推荐指数
1
解决办法
2万
查看次数

可靠地检测<img>标签对SVG的支持

目前,我正在做一个网站的一些重新设计,基本上只是它升级到更先进的最新外观和试图使其尽可能独立的分辨率,分辨率独立的名字,我想我会尝试使用设计中的SVG图像,浏览器支持<img>标签中的SVG图像.我之所以坚持只在<img>标签中使用SVG 而不是使用一些更加雄心勃勃的解决方案的原因是AFAIK Chrome,Opera和Safari都支持它,而FF4似乎最终可以得到它以及整个网站的事实构建在自定义CMS上,必须部分重写才能开始更改输出HTML(目前它支持自定义设计图像,自定义CSS和每个主题的自定义JS包含).

现在,我已经看了看四周的净有点自己试图找出这样做的最佳途径,由于某种原因,几乎每一个建议的解决方案,我发现了不良工作(一个检测FF3.x在支持SVG <img>标签等等他们没有在那里正确显示,另一个从未尝试过,有些过于复杂"用SVG替换所有图像,如果有支持它"的功能也不会很好.

我正在寻找的是一个可以像这样被调用的小片段(顺便说一下,我正在使用JQuery和这个网站的新主题):

if(SVGSupported()) {
    $('#header img#logo').attr('src','themes/newTheme/logo.svg');
    /* More specified image replacements for CSS and HTML here */
}
Run Code Online (Sandbox Code Playgroud)

有没有人真的有一个工作解决方案,不会给出不准确的输出?如果是这样,我会非常感激.

javascript jquery svg image browser-feature-detection

12
推荐指数
1
解决办法
5916
查看次数

用JavaScript检测iPad版本

是否可以在Web应用程序中检查iPad版本(1或2)?由于用户代理看起来相同(请参阅http://www.webtrends.com/Support/KnowledgeBase/SolutionDetail.aspx?Id=50140000000acbiAAA),因此浏览器的标准检查在此处不起作用.

我们可以检查JavaScript中仅在版本2中可用的功能(如陀螺仪)吗?

javascript ipad browser-feature-detection

12
推荐指数
3
解决办法
1万
查看次数