相关疑难解决方法(0)

检测Safari浏览器

如何使用JavaScript检测Safari浏览器?我在下面尝试了代码,它不仅可以检测Safari,还可以检测Chrome浏览器.

function IsSafari() {

  var is_safari = navigator.userAgent.toLowerCase().indexOf('safari/') > -1;
  return is_safari;

}
Run Code Online (Sandbox Code Playgroud)

javascript browser-detection

119
推荐指数
14
解决办法
16万
查看次数

列表项的CSS多列布局在Chrome中无法正确对齐

我正在构建一个以多列格式呈现给用户的菜单系统.CSS3中的列数属性让我获得了90%的优势,但我在Chrome下的对齐方面遇到了困难.

菜单相对简单:

  • 列计数属性划分为多列的无序列表
  • 列应按顺序填充,因此列填充:auto
  • 菜单项表示为列表项
  • 每个列表项都有一个可点击的锚标记,通过display:block完全扩展

我所拥有的对齐问题最明显,每个列表项都有一个顶部边框和一些背景颜色.在Firefox中,列表项始终在每列中干净地对齐,从不会流入上一列/下一列.在Chrome中,对齐是一个废话,随着列表项的数量和任何填充/边距属性而变化.

我在这里发布了一个简单测试用例的代码:http://pastebin.com/Ede3JwdG

问题应该立即显而易见:在Chrome中,第二列中的第一个列表项会回流到第一列.当您删除列表项(单击它们)时,您可以看到对齐进一步分解.

我已经尝试调整列表项的填充/边距无济于事:Chrome似乎对于如何在多列布局中流动内容有一个有缺陷的算法.

我没有完全放弃列数(主要是手动生成/ Columnizer /等)的主要原因是菜单系统还涉及跨多个子菜单的拖放功能,并且菜单数据已经布局作为一个基于列表的内聚层次结构,可以实现干净的代码.

有没有办法解决Chrome中的对齐问题,或者我现在应该放弃列数

添加:

css alignment css3 css-multicolumn-layout

49
推荐指数
5
解决办法
7万
查看次数

如何检查浏览器是否支持css值?

我不是很熟悉javascript所以请耐心等待我.Safari 6及以下和较旧的Android移动浏览器可能更多不支持css值VH.我的DIV #id或class不是视口的高度.下面是一个页面的链接,我发现了一些有用的信息,但我真的不知道如何使用它与css值:

检查是否支持css值

以下是作为快捷方式给出的代码:

if('opacity' in document.body.style) {  
   // do stuff
}

function isPropertySupported(property{
   return property in document.body.style;
 }
Run Code Online (Sandbox Code Playgroud)

在我上面附带的链接的评论中,有人确实询问如何检查是否支持css VALUE,答案是"你设置它,然后读取值并检查浏览器是否保留它." 现在我确定如果我知道更多我刚开始学习的javascript,这将是有用的信息.

这是我的想法,但我真的不知道如何去做这件事.检查div#id或div.class是否具有vh css值.检查浏览器是否支持css值.如果支持则继续加载.如果不支持,则更改id或class.

总结一下我的问题:

如何使用javascript或jquery检查浏览器是否支持css值?

对答案的指导非常感谢.谢谢你的帮助.

javascript css browser jquery viewport

23
推荐指数
4
解决办法
1万
查看次数

使用Javascript检测Google Chrome以切换CSS

我一直在玩不同的脚本,我发现一个适用于Chrome以外的所有脚本...这是我用来区分.CSS文件的代码.我尝试将浏览器名称改为"Chrome",但这不起作用.

if (browser == 'Firefox') {
    document.write('<link rel="stylesheet" href="../component/fireFoxdefault.css" />');
}
if (browser == 'Safari') {
    document.write('<'+'link rel="stylesheet" href="../component/default.css" />');
}
Run Code Online (Sandbox Code Playgroud)

javascript css google-chrome browser-detection

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

如何在不使用window.navigator的情况下可靠地检测浏览器?

我知道Stack Overflow上有一千个关于用JavaScript检测浏览器的问题.我的问题是如何在没有window.navigator(包括navigator.userAgent)的情况下检测浏览器?

首先,澄清一下,我不需要知道渲染引擎,这不适用于自适应布局,也不要惊慌:我已经在进行特征检测了.如果,为什么我问有关检测浏览器是很重要的,请评论,我会很乐意在解释拼接,但它可能会使问题严重长.

接下来,让我描述为什么我的问题不是重复的:

  • Javascript中的浏览器检测? 因为19个答案,12都使用navigator.userAgent特异性(包括jQuery.browser其中使用的userAgent,现在正在反正消失),4使用navigator.appName(其给出"网景"在Chrome ...),1下侧的步骤通过推荐的特征检测,问题这不同于浏览器检测(我已经在使用特征检测,但要知道我可以使用它们的程度,我需要浏览器检测),2并不是真正的答案或是IE特定的.(虽然这种非的回答居然是,为什么在这里,我的问题是非常相关的解释:我试图避免碰到痛点在某些浏览器会崩溃的标签!)因为我的问题是问一个答案(甚至是黑客? )没有使用window.navigator,它不是该问题的副本.

  • 检查用户是否正在使用IE, 因为 11个答案,10个使用navigator.userAgent,其中1个使用IE技巧仅检测IE,这不足以回答我的问题(尽管它可能只是发布的有用解决方案的一小部分)这里)?

  • 在Javascript中,如何确定我当前的浏览器是否是计算机上的Firefox与其他所有浏览器? 因为 11个答案,8个使用navigator.userAgent,2个推荐特征检测(再次,不是我的问题),1个甚至不是答案,真的.

  • 如何检测chrome和safari浏览器(webkit), 因为有8个答案,其中6个使用navigator.userAgent,2个是webkit特定的.不幸的是,WebKit并不一定只与Safari绑定,我需要知道浏览器,而不是渲染引擎.

希望这很清楚.

我知道还有其他方法可以做到这一点,但我不太了解每个浏览器的细节.在某些浏览器中是否存在始终或可靠地暴露给JavaScript的对象或变量?我知道一些实验性的API是以供应商为前缀的,但这对于在商业产品中使用似乎不是一个好主意,尽管如果需要我愿意屈服于那么低.还有其他可能吗?

javascript user-agent cross-browser

11
推荐指数
2
解决办法
3891
查看次数

在javascript中检测webkit浏览器?

编辑: 我实际上使用PHP来检测和创建一个带有php标签的局部变量.

if ( strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'webkit')) {
    $is_webkit = "true";
}
Run Code Online (Sandbox Code Playgroud)

如何检测浏览器是否基于webkit?(谷歌Chrome,更新的Opera,safari);

我试过这个:

var isWebkit = (window.webkitURL != null);
if(isWebkit){
    alert("i am a webkit based browser!");
}
Run Code Online (Sandbox Code Playgroud)

不适用于野生动物园

javascript browser jquery webkit

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

是否可以检测特定的webkit功能,以检查用户是否正在使用webkit浏览器

如果我需要检测Firefox,我已经使用了下面的代码:

var firefox = !(window.mozInnerScreenX == null);
Run Code Online (Sandbox Code Playgroud)

我很好奇是否有类似检测webkit浏览器的东西而没有检查用户代理字符串.像检查特定功能只有webkit浏览器有?

webkit feature-detection

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