X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Как получить значение переменной из другого файла js?
Ser_Maxim
Ser_Maxim
Topic Starter сообщение 5.11.2009, 11:37; Ответить: Ser_Maxim
Сообщение #1


Возникла такая вот очень не понятная проблема с Оперой и 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 его содержание: (над окошком с кодом пишется ниже "PHP код:" - это только для подсветки синтаксиса, разумеется речь идет только о JavaScript)
[PHP]document.write('<script type="text/javascript" src="addtext.js"></script>')
document.write('Второй блок текста<br>')[/PHP]

3. addtext.js
[PHP]var add = 'Первый блок текста<br>'
document.write(add)[/PHP]

Если запускаем test.html в браузерах Хром и Фаерфокс, то результат на экране получаем такой:

Первый блок текста
Второй блок текста

А вот в Опере и IE результат тоже получаем, только неожиданный:

Второй блок текста
Первый блок текста

Эта парочка браузеров выполняет document.write('<script type="text/javascript" src="addtext.js"></script>') в последнюю

очередь и записывает результат ниже, т.е. не на том месте как ожидаешь.
Перебрал кучу вариантов (я не опытный юзер явы - тока учусь), прогуглил все что можно и вот решил спросить совета у профессионалов.

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

main.js его содержание:
[PHP]var fist = (src="addtext.js"?add.value) //значение переменной add из файла addtext.js
document.write(fist)
document.write('Второй блок текста<br>')[/PHP]

Вариант типа, разбить содержимое всего файла main.js на
[PHP]document.write('<script type="text/javascript" src="addtext1.js"></script>')
document.write('<script type="text/javascript" src="addtext2.js"></script>')[/PHP]
что бы уж точно все браузеры поочередно вписывали в страницу содержимое из составных частей не подходит, т.к. файлов типа addtext.js получиться больше десятка и редактировать main.js сами понимаете по кусочкам из разных файлов не реально.
Два очень важных условия, файл addtext.js должен обязательно содержать document.write('...'), т.к. он используется в таком виде в других местах и путь к нему должен быть абсолютный, т.к. подобные файлы будут собираться в main.js из разных доменов.

Очень надеюсь на Вашу помощь, только, пожалуйста, если это возможно то приведите пример кода, если нет, то какие тогда варианты решения данной задачи.
Заранее всем спасибо!
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 7.11.2009, 19:51; Ответить: Webmaster_hb
Сообщение #2


полученные переменные - надо вписывать в страницу в самом HTML файле - а не в Javascript
в HTML файле будут доступны и те и те переменные
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Ser_Maxim
Ser_Maxim
Topic Starter сообщение 7.11.2009, 22:22; Ответить: Ser_Maxim
Сообщение #3


:wacko:
Webmaster, вас не затруднит привести пример?
Сформулирую вопрос конкретней:
Как обратиться за значением переменной из одного файла .js в другой файл .js? Т.е. как правильно должен выглядеть такой код в файле main.js?
[PHP]var fist = ???(src="addtext.js"?add.value)??? //значение переменной add из файла addtext.js
document.write(fist)[/PHP]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Webmaster_hb
Webmaster_hb
сообщение 7.11.2009, 22:29; Ответить: Webmaster_hb
Сообщение #4


Ser_Maxim, я не знаю, для чего вам такая сложная схема
я просто предлагаю более легкий путь

index.html
<html>
<head>
<title>Тест скрипта</title>
</head>
<body>
<script type="text/javascript" src="main.js"></script>
<script>
document.write(add);
document.write(add2);
</script>
</body>
</html>


main.js
document.write('<script type="text/javascript" src="addtext.js"></script>')
var add2 = 'Второй блок текста<br>'


addtext.js
var add = 'Первый блок текста<br>'
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Ser_Maxim
Ser_Maxim
Topic Starter сообщение 7.11.2009, 23:13; Ответить: Ser_Maxim
Сообщение #5


Webmaster, Вы меня не поняли :rolleyes:
main.js - файл контейнер, который по задумке объединяет в себе множество значений из разных мелких файлов js.
необходимо чтобы main.js подключался к любому html посредством только одной строки <script type="text/javascript" src="main.js"></script>
Мелкие файлы типа addtext.js должны обязательно содержать строки кода.
[PHP]var add = 'Какой то текст и код<br>'
document.write(add) [/PHP] т.к. они используются во многих местах.
Вот от сюда и возникает необходимость обратиться к файлу addtext.js из main.js только за значением переменной add. потому что в main.js document.write(add) присутствовать не должно.
Надеюсь я понятно объяснил :rolleyes:

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Как вы отдыхаете от работы за компом
151 adw-kupon.ru 19809 Сегодня, 13:52
автор: Vmir
Открытая тема (нет новых ответов) Как вы бросили работу и перешли на заработок с сайтов?
20 uahomka 3441 Сегодня, 11:54
автор: Skyworker
Открытая тема (нет новых ответов) Как в пушсетках покупают по 100-200 тысяч кликов за день?
1 Boymaster 509 Сегодня, 11:45
автор: Skyworker
Горячая тема (нет новых ответов) Как вывести деньги в Украине с заблокированного Юмани ?
30 freeax 5005 20.4.2024, 16:49
автор: Liudmila
Открытая тема (нет новых ответов) Арбитражники, как ведете учет расходов и доходов?
13 Boymaster 2017 20.4.2024, 15:06
автор: Boymaster


 



RSS Текстовая версия Сейчас: 23.4.2024, 19:32
Дизайн