Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   проблема с вызовом функции из js-файла (https://javascript.ru/forum/events/7550-problema-s-vyzovom-funkcii-iz-js-fajjla.html)

Leax 07.02.2010 17:56

проблема с вызовом функции из js-файла
 
Используется связка GreaseMonkey+FireFox+FireBug

К GM подключаю скрипт:
alert('Start js');

var start_button = document.createElement("div");
start_button.innerHTML = '<script type="text/javascript" src="file://localhost/D:/games/script/mz/mz1.js">'+
'</script> <input type="button" value="Button" onClick="div_calc()">';

document.body.insertBefore(start_button, document.body.firstChild);


В файле mz1.js код
function div_calc(){ alert('Inside function');}


При открытии соответствующей страницы срабатывает alert "Start js" (причем 2 раза, как ни странно).

Также вверху страницы слева появляется кнопка Button
Но при нажатии на эту кнопку ничего не происходит!

Посмотрел код страницы с помощью FireBug - в body есть и моя кнопка и код файла с функцией. Но функция div_calc() при нажатии на кнопку Button не срабатывает.
Вот такие непонятки :-?

Kolyaj 07.02.2010 18:00

Браузер не будет грузить скрипты с протоколом file на страницы, загруженный с http(s). Поставьте локальный веб-сервер и грузите скрипты оттуда. Вообще забудьте про file:///

Leax 07.02.2010 18:24

Kolyaj,
Хм. Точно. Спасибо
Сделал всё в одном файле- заработало
alert('Start js');

var start_button = document.createElement("div");
start_button.innerHTML = '<script type="text/javascript"> function div_calc(){alert("Inside function");} </script>'+
'<input type="button" value="Button" onClick="div_calc()">'; 

document.body.insertBefore(start_button, document.body.firstChild);

Только уж больно неудобно всю js-функцию в виде строки писать. А придется =(

Leax 07.02.2010 18:36

Kolyaj,
Еще раз уточню:
если я установлю локальный веб-сервер, то я смогу грузить страницы из интернета, а внедрять в них js-файлы с этого локального сервера?

Kolyaj 07.02.2010 18:51

Угу.

http://www.denwer.ru/ на всякий случай.

Leax 07.02.2010 19:08

Kolyaj,
Ай, спасибо тебе огромное!!!!!!!
Я еще лучше нашел, размером 140кБ!!
Small HTTP server
Установил за 2 мин - всё летает! Спасибо огромное!!!!! :yes:

И скрипты с локального диска грузятся!:dance:
P/S/^ ставил английскую версию, а то на русскую чего-то Avira ругается


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