Косяк здесь в кроусброузерности. Я сам набросал пример, который работал отлично в IE, в Firefox не работало так как нужно и своими силами я так и не решил эту проблему. Но нашёл вроде как решение проблемы, в этом примере всё вроде работает для разных браузеров:
https://github.com/englandrp/Cross-b...focus-solution