Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> пространства имен в JS 
V
    Опции темы
pythonwin
Дата 23.1.2007, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 1
Всего: 36



Всем привет!

у меня есть вопрос по пространству имен:
для примера: у меня есть два файла 
jsfile1.js и jsfile2.js
в который есть переменные 
widget и widget (называются одинаковыми именами)

теперь вызываю в html документе
<script src="jsfile1.js"></script>
<script src="jsfile2.js"></script>


и естественно работать буду только с одной из двух переменных - а как сделать так чтобы работал с переменными указывая файл:
jsfile1.widget и jsfile2.widget 
???
PM WWW GTalk Jabber   Вверх
Zeroglif
Дата 23.1.2007, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 644
Регистрация: 22.9.2005

Репутация: 28
Всего: 66



Цитата(pythonwin @  23.1.2007,  10:34 Найти цитируемый пост)
а как сделать

Никак. Второе объявление переменной будет проигнорировано. 

Я так понимаю, что это связано с тем, что не хочется переписывать второй скрипт что ли?
PM MAIL WWW   Вверх
pythonwin
Дата 23.1.2007, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 1
Всего: 36



Цитата(Zeroglif @  23.1.2007,  17:45 Найти цитируемый пост)

Я так понимаю, что это связано с тем, что не хочется переписывать второй скрипт что ли? 

Да:
1) код не мой и используется большим количеством людей
2) переписывать придётся ну очень много

но при этом такая же проблема у меня возникает, когда пишу большой код и разделяю его на файлы js
PM WWW GTalk Jabber   Вверх
Zeroglif
Дата 23.1.2007, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 644
Регистрация: 22.9.2005

Репутация: 28
Всего: 66



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

Локализовать скрипт в функции:
Код

(function () {
    var x = 1;
    // --> и дальше весь скрипт второго файла
})();


Это сообщение отредактировал(а) Zeroglif - 23.1.2007, 15:17
PM MAIL WWW   Вверх
pythonwin
Дата 24.1.2007, 07:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 1
Всего: 36



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

Zeroglif, спасибо, за код и за помошь

Добавлено @ 07:41 
а можно импортировать файл.js как ссылку на файл в другом js-файле?

что-то типа
Код

import module_name;
i = module_name.var1 + 5;


PM WWW GTalk Jabber   Вверх
Sardar
Дата 24.1.2007, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(pythonwin @  24.1.2007,  06:29 Найти цитируемый пост)
а можно импортировать файл.js как ссылку на файл в другом js-файле?

Нет. Можно сымитировать создав <script> элемент и добавив его к документу, но это ИМХО бред и не для всех браузеров (старые точно откажутся). 


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
AKS
Дата 24.1.2007, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: 27
Всего: 52



pythonwin
Раз уж у Вас дело дошло до импорта, попытайтесь грузить второй сценарий в <iframe>. В результате в окне должно появиться два widget'а - один просто widget, а другой - <iframe>.contentWindow.widget...
PM MAIL   Вверх
pythonwin
Дата 25.1.2007, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 1
Всего: 36



Цитата(AKS @  25.1.2007,  00:41 Найти цитируемый пост)

Раз уж у Вас дело дошло до импорта, попытайтесь грузить второй сценарий в <iframe>. В результате в окне должно появиться два widget'а - один просто widget, а другой - <iframe>.contentWindow.widget... 

спасибо, за совет - попробую так smile
++1
Цитата(Sardar @  24.1.2007,  17:28 Найти цитируемый пост)

Нет. Можно сымитировать создав <script> элемент и добавив его к документу, но это ИМХО бред и не для всех браузеров (старые точно откажутся). 

спасибо! smile
тогда таким способ не будем использовать

PM WWW GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1094 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.