The best way of checking for -moz-border-radius support

前端 未结 7 431
日久生厌
日久生厌 2021-01-02 04:54

I wanted some of those spiffy rounded corners for a web project that I\'m currently working on.

I thought I\'d try to accomplish it using javascript and not CSS in a

7条回答
  •  耶瑟儿~
    2021-01-02 04:57

    I've developed the following method for detecting whether the browser supports rounded borders or not. I have yet to test it on IE (am on a Linux machine), but it works correctly in Webkit and Gecko browsers (i.e. Safari/Chrome and Firefox) as well as in Opera:

    function checkBorders() {
      var div = document.createElement('div');
      div.setAttribute('style', '-moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px;');
      for ( stylenr=0; stylenr

    If you wanted to test for Firefox 2 or 3, you should check for the Gecko rendering engine, not the actual browser. I can't find the precise release date for Gecko 1.9 (which is the version that supports anti-aliased rounded corners), but the Mozilla wiki says it was released in the first quarter of 2007, so we'll assume May just to be sure.

    if ( /Gecko\/\d*/.test(navigator.userAgent) && parseInt(navigator.userAgent.match(/Gecko\/\d*/)[0].split('/')[1]) > 20070501 )
    

    All in all, the combined function is this:

    function checkBorders() {
      if ( /Gecko\/\d*/.test(navigator.userAgent) && parseInt(navigator.userAgent.match(/Gecko\/\d*/)[0].split('/')[1]) > 20070501 ) {
        return true;
      } else {
        var div = document.createElement('div');
        div.setAttribute('style', '-moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px;');
        for ( stylenr=0; stylenr

提交回复
热议问题