Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.11.2009, 10:11
Интересующийся
Отправить личное сообщение для Ser_Maxim Посмотреть профиль Найти все сообщения от Ser_Maxim
 
Регистрация: 05.11.2009
Сообщений: 11

Как получить значение переменной из другого файла 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 из разных доменов.

Очень надеюсь на Вашу помощь, только, пожалуйста, если это возможно то приведите пример кода, если нет, то какие тогда варианты решения данной задачи?
Заранее всем спасибо!

Последний раз редактировалось Ser_Maxim, 06.11.2009 в 07:45.
Ответить с цитированием
  #2 (permalink)  
Старый 05.11.2009, 20:23
Аватар для Basonsan
Аспирант
Отправить личное сообщение для Basonsan Посмотреть профиль Найти все сообщения от Basonsan
 
Регистрация: 22.10.2009
Сообщений: 50

а ты попробуй через функцию. ну типо в 1 файл функцию а в другие переменые
Ответить с цитированием
  #3 (permalink)  
Старый 06.11.2009, 07:52
Интересующийся
Отправить личное сообщение для Ser_Maxim Посмотреть профиль Найти все сообщения от Ser_Maxim
 
Регистрация: 05.11.2009
Сообщений: 11

Формулирую вопрос конкретней:

Как обратиться за значением переменной из одного файла .js в другой файл .js? Т.е. как правильно должен выглядеть такой код в файле main.js?
var fist = ???(src="addtext.js"?add.value)??? //значение переменной add из файла addtext.js
document.write(fist)

Цитата:
пожалуйста, если это возможно то приведите пример кода, если нет, то какие тогда варианты решения данной задачи?
Ответить с цитированием
  #4 (permalink)  
Старый 06.11.2009, 15:27
Аватар для Basonsan
Аспирант
Отправить личное сообщение для Basonsan Посмотреть профиль Найти все сообщения от Basonsan
 
Регистрация: 22.10.2009
Сообщений: 50

Сообщение от Ser_Maxim Посмотреть сообщение
Возникла такая вот очень не понятная проблема с Оперой и 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 из разных доменов.

Очень надеюсь на Вашу помощь, только, пожалуйста, если это возможно то приведите пример кода, если нет, то какие тогда варианты решения данной задачи?
Заранее всем спасибо!
ну вот ты говоришь у тебя их будут десятки js
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>')
Ответить с цитированием
  #5 (permalink)  
Старый 07.11.2009, 09:35
Интересующийся
Отправить личное сообщение для Ser_Maxim Посмотреть профиль Найти все сообщения от Ser_Maxim
 
Регистрация: 05.11.2009
Сообщений: 11

Спасибо, конечно! Как я уже писал, это вариант на самый - самый крайний случай. Почему с таким вариантом не хочется связываться:
Редактировать все содержание main.js станет просто нереально, потому что буквально одно предложение будет разбито на несколько файлов:
|Мама пошла в|магазин "Радуга"|,чтобы купить молоко|
В примере просто текст, а ведь это будет куча кода и текста. Вобщем сложно очень работать с такой структурой.
По-этому вопрос остается открытым:
Цитата:
Как обратиться за значением переменной из одного файла .js в другой файл .js? Т.е. как правильно должен выглядеть такой код в файле main.js?
var fist = ???(src="addtext.js"?add.value)??? //значение переменной add из файла addtext.js
document.write(fist)
Пожалуйста, господа профессионалы!! обратите внимание на эту проблему - помогите решить эту задачу новичку

Последний раз редактировалось Ser_Maxim, 07.11.2009 в 14:49.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как передать значение переменной в IFRAME в поле формы JS-ом из самой страницы? DeUre Общие вопросы Javascript 14 17.12.2013 16:37
как получить значение NAME по ID zerg Элементы интерфейса 7 25.09.2009 02:42
как в ячейку твблицы вставить значение переменной firudin Общие вопросы Javascript 1 01.07.2009 09:13
как php перменной присвоить значение переменной javascript? php_vasia Элементы интерфейса 4 04.05.2009 14:33
Переменная от переменной или как к имени переменной конкатенировать значение другой Aderba jQuery 5 12.11.2008 15:25