Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Apparently the BLINK tag doesn't actually work in some modern browsers, so I had to reimplement it in JavaScript. If you'd like to use it on your own site, here's the code:

    var blinkOn = 1;
    window.setInterval(function() {
        var blinks = document.getElementsByTagName("blink");
        for (var i = 0; i < blinks.length; i++)
            blinks[i].style.visibility = blinkOn ? "visible" : "hidden";
        blinkOn ^= 1;
    }, 500);


Just a small note - you should not explicitly set the visibility to "visible", set it to the empty string "" instead. This way you don't overwrite the default property if it was something else.

And you can skip the blinkOn variable by:

  blinks[i].style.visibility = blinks[i].style.visibility == "" ? "hidden" : "";


That's actually way slower because you're doing a comparison within an iteration. That's putting an if statement inside a loop while the result is the same for every iteration.


Computers are not that slow these days :)

It reduces complexity and a global, which is far more important.

And that blink loop is probably not that big - just how many blink tags do you have?

I don't use it for blink loops anyway, I use it for toggle on/off, where keeping state for each element individually is pretty important.


You're accessing the DOM every iteration, so I'd bet that it does matter somewhat if blink is used a lot.

You can avoid polluting by make it an actual function and then setting the function.blinkOn instead.

You're right: individually swapping them this works better, but the intent is to have them all off or all on.

  (function() {
    var blinkIterator = function() {
        var blinks = document.getElementsByTagName("blink"),
         onOff = blinkIterator.blinkOn ? "" : "hidden";
        for (var i = 0, l = blinks.length; i < l;)
            blinks[i++].style.visibility = onOff;
        blinkIterator.blinkOn ^= 1;
    };
    blinkIterator.blinkOn = 1;
    window.setInterval(blinkIterator, 750);
  })();


Well played, sir.


You don't need all that complexity. just use CSS:

text-decoration: blink

Works in FF 3.5


Well, no. Browsers that don't support "blink" tags also don't support "text-decoration: blink".

I'd hardly call it complex either.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: