проблема с вызовом функции из 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 не срабатывает. Вот такие непонятки :-? |
Браузер не будет грузить скрипты с протоколом file на страницы, загруженный с http(s). Поставьте локальный веб-сервер и грузите скрипты оттуда. Вообще забудьте про file:///
|
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-функцию в виде строки писать. А придется =( |
Kolyaj,
Еще раз уточню: если я установлю локальный веб-сервер, то я смогу грузить страницы из интернета, а внедрять в них js-файлы с этого локального сервера? |
|
Kolyaj,
Ай, спасибо тебе огромное!!!!!!! Я еще лучше нашел, размером 140кБ!! Small HTTP server Установил за 2 мин - всё летает! Спасибо огромное!!!!! :yes: И скрипты с локального диска грузятся!:dance: P/S/^ ставил английскую версию, а то на русскую чего-то Avira ругается |
Часовой пояс GMT +3, время: 03:58. |