Как получить значение переменной из другого файла js?
Возникла такая вот очень не понятная проблема с Оперой и IE, в Хроме и Фаерфоксе все красиво работает.
Необходимо получить данные из одного файла js и использовать их в другом. Имеем три файла (код приведен в упрощенном виде, чтобы показать cуть проблемы): 1. test.html его содержание: <html> <head> <title>Тест скрипта</title> </head> <body> <script type="text/javascript" src="main.js"></script> </body> </html> 2. main.js его содержание: document.write('<script type="text/javascript" src="addtext.js"></script>') document.write('Второй блок текста<br>') 3. addtext.js var add = 'Первый блок текста<br>' document.write(add) Если запускаем test.html в браузерах Хром и Фаерфокс, то результат на экране получаем такой: Первый блок текста Второй блок текста А вот в Опере и IE результат тоже получаем, только неожиданный: Второй блок текста Первый блок текста Эта парочка браузеров выполняет document.write('<script type="text/javascript" src="addtext.js"></script>') в последнюю очередь и записывает результат ниже, т.е. не на том месте как ожидаешь. Перебрал кучу вариантов (я не опытный юзер явы - тока учусь), прогуглил все что можно и вот решил спросить совета у профессионалов. Предполагаю что в данном случае нужно как то получить значение переменной add из файла addtext.js, т.е. решение проблемы что то вроде такого должно получиться: main.js его содержание: var fist = (src="addtext.js"?add.value) //значение переменной add из файла addtext.js document.write(fist) document.write('Второй блок текста<br>') Вариант типа, разбить содержимое всего файла main.js на document.write('<script type="text/javascript" src="addtext1.js"></script>') document.write('<script type="text/javascript" src="addtext2.js"></script>') что бы уж точно все браузеры поочередно вписывали в страницу содержимое из составных частей не подходит, т.к. файлов типа addtext.js получиться больше десятка и редактировать main.js сами понимаете по кусочкам из разных файлов не реально. Два очень важных условия, файл addtext.js должен обязательно содержать document.write('...'), т.к. он используется в таком виде в других местах и путь к нему должен быть абсолютный, т.к. файлы будут собираться в main.js из разных доменов. Очень надеюсь на Вашу помощь, только, пожалуйста, если это возможно то приведите пример кода, если нет, то какие тогда варианты решения данной задачи? Заранее всем спасибо! |
а ты попробуй через функцию. ну типо в 1 файл функцию а в другие переменые
|
Формулирую вопрос конкретней:
Как обратиться за значением переменной из одного файла .js в другой файл .js? Т.е. как правильно должен выглядеть такой код в файле main.js? var fist = ???(src="addtext.js"?add.value)??? //значение переменной add из файла addtext.js document.write(fist) Цитата:
|
Цитата:
document.write('<script type="text/javascript" src="addtext1.js"></script>') document.write('<script type="text/javascript" src="addtext2.js"></script>') можно сделать так for (i=1; i<=(скок будет js); i++) document.write('<script type="text/javascript" src="addtext'+i+'.js"></script>') |
Спасибо, конечно! Как я уже писал, это вариант на самый - самый крайний случай. Почему с таким вариантом не хочется связываться:
Редактировать все содержание main.js станет просто нереально, потому что буквально одно предложение будет разбито на несколько файлов: |Мама пошла в|магазин "Радуга"|,чтобы купить молоко| В примере просто текст, а ведь это будет куча кода и текста. Вобщем сложно очень работать с такой структурой. По-этому вопрос остается открытым: Цитата:
|
Часовой пояс GMT +3, время: 03:32. |