Newb
в 3 случае просто неправильный код. Вы сразу в определение функции вставили ее вызов. Определение и вызов должны жить в разных местах, как это и сделано в первом варианте.
Имеем:
PHP код:
<script>
function f() {
alert('я крут');
}
</script>
дальше создаем объект, поддерживающий метод onClick (т.е. что-то по щелчку) и по onClick вызываем функцию:
PHP код:
<h1 onclick="f();"> text </h1>