Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Best way to check if browser supports `.textContent`?

I want to check if the browser supports .textContent

I have thought these options:

  1. if( document.body.textContent ) { }
  2. if( document.createElement('div').textContent !== void(0) ) { }

Of course, the first one is simpler, but the problem I see is that maybe the browser calculates all the string, which can be slow if the website is huge.

Then, which one should I choose? Or is there a better option?

Edit: I have created a jsperf

like image 781
Oriol Avatar asked Dec 04 '25 03:12

Oriol


2 Answers

With...

'textContent' in document.body

... expression you'll just check a property (textContent) existence in document.body object, without actually checking its value.

And yes, it is false in IE8.

like image 164
raina77ow Avatar answered Dec 06 '25 16:12

raina77ow


Use 2nd option. Far more efficient. I've just done the test.

Note: Raw Test. Speed: 355 ms vs 6 ms.

<!DOCTYPE html>
<html>
    <body>
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    varasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs

    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsgasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsasdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjs
    asdajfhaskjaskngakjgnaskjgnaskgjasngkajsngakjsg

        <script>
        var d0 = new Date();var n0 = d0.getTime();  
        for(var i = 0 ; i < 10000 ; i++){

        if( document.body.textContent ) { }


        }var d1 = new Date();   var n1 = d1.getTime();  console.log(n1-n0);


        var array0 =[];
        var d0 = new Date(); var n0 = d0.getTime(); 
        for(var i = 0 ; i < 10000; i++){

        if( document.createElement('div').textContent !== void(0) ) { }



        }var d1 = new Date();   var n1 = d1.getTime();  console.log(n1-n0); 

        </script>



    </body>
</html>
like image 30
RainingChain Avatar answered Dec 06 '25 17:12

RainingChain



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!