krutoy, куда пропал? 
 
можно сделать хотя бы так
<body>
<input/>
<div style="display: none">
	<a href="http://javascript.ru">link</a>
	TEXT
</div>
<script>
window.onbeforeunload = function () {
	return "onberforeunload";
};
(function () {
	var get = document.querySelector.bind(document);
	var input = get("input");
	var div = get("div");
	input.onfocus = function () {
		div.style.display = "block";
	}
	input.onblur = function () {
		setTimeout(function () {
			div.style.display = "none";
		}, 100);
	}
})();
</script>
К тебе отдельный вопрос: сможешь объяснить почему без точки с запятой после блока window.onbeforeunload возникает ошибка?
<body>
<input/>
<div style="display: none">
	<a href="http://javascript.ru">link</a>
	TEXT
</div>
<script>
window.onbeforeunload = function () {
	return "onberforeunload";
}
(function () {
	var get = document.querySelector.bind(document);
	var input = get("input");
	var div = get("div");
	input.onfocus = function () {
		div.style.display = "block";
	}
	input.onblur = function () {
		setTimeout(function () {
			div.style.display = "none";
		}, 100);
	}
})();
//Uncaught TypeError: string is not a function
</script>