Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   ссылка на функцию (https://javascript.ru/forum/misc/35867-ssylka-na-funkciyu.html)

Wardes 25.02.2013 01:22

ссылка на функцию
 
помогите в таком вопросе. поблема вот в чём. если javascript код находится в HTML файле, в этом же в котором и ссылка на функцию, всё работает хорошо.
<script>
function myFun() {
    alert ("hello");
}

</script>

<a href="javascript:myFun();">запуск функции</a>

Но если javascript код вынести в отдельный файл javascript .js и подключить этот файл к документу,
<script src="javascripts.js" type="text/javascript"></script>
ссылка на функцию уже не работает. Как сделать так чтобы функция работала по ссылке как в примере выше. Помогите плиз. Зарание благодарен за внимание.

danik.js 25.02.2013 06:16

Wardes, хватит заливать!
<script src="data:application/javascript;charset=utf-8,function%20myFunc()%7Balert('%D0%AF%20%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D1%8E!')%7D"></script>
<button onclick="myFunc()">Нажми меня</button><br />
<a href="javascript:myFunc()">Олдскульный вариант</a>

Wardes 25.02.2013 17:47

я так и делал, но почему то у меня в фаер баге пишет ошибку: ReferenceError: myFunc is not defined

файл с js кодом подключен верно, если запускаю функцию в нём она срабатывает, и если js код из файла прописать между тегами скрипт в основной странице, то тоже всё работает отлично....
не понимаю, что я делаю не так :cray:

danik.js 25.02.2013 17:50

А может она объявлена внутри другой функции? Попробуйте для начала объявить ее как
window.myFunc = function () { /* тут тело */ }

Wardes 25.02.2013 18:06

я только что решил проблему, дело в том что я действительно её пытался вызвать внутри другой функции:
$(document).ready(function() {

});

как только вынес её за пределы всё заработало
большое спасибо за помошь

danik.js 25.02.2013 18:28

Так и думал ) Впринципе других вариантов и не было (кроме как ошибки в коде)


Часовой пояс GMT +3, время: 22:47.