Javascript.RU

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

Подгрузка ява скрипта . можно ли
Добрый день!
Я не уверен туда ли написал вопрос Но все же....
возникла такая задача.
Есть сайт panton.firstvds.ru на нем будут описания замков мира + карта от гугла на которой показывается где распологается сам замок.
необходимо сделать чтоб карта подгружалась по клику на вкладке "Карта", то есть чтоб она грузилась только после того как кликнут по этой ссылке. Вот примерный код который хочу вставить

.... <li><a href="#body_karta" id="megakarta"><span>Карта</span></a></li> 

<script type='text/javascript'>
function videoclick() {
//-----------
var cod ='<script type="text/javascript">
/* <![CDATA[ */   
Drupal.extend({ settings: { "gmap": { "nodemap": { "width": "100%", "height": "600px", "zoom": 5, "controltype": "Small", "align": "None", "maptype": "Map", "line_colors": [ "#00cc00", "#ff0000", "#0000ff" ], "behavior": { "locpick": false, "nodrag": 0, "nokeyboard": 1, "nomousezoom": 1, "autozoom": 0, "dynmarkers": 0, "overview": 1, "notype": 0, "collapsehack": 0, "scale": 1 }, "markermode": "2", "id": "nodemap", "longitude": "140.463638", "latitude": "40.607518", "rmtcallback": "/castle/?q=map/node/load", "markers": [ { "link": "/castle/?q=node/27", "latitude": "40.607518", "longitude": "140.463638", "markername": "small red", "opts": { "title": "Hirosaki Castle : Широта 40.607518 : Долгота 140.463638" } } ], "querypath": "http://localhost/castle/?q=map/query" } } } });
 /* ]]> */ </script>  '

//---------------
var statusElem = document.getElementById('body_karta')
 statusElem.innerHTML = '<br>'+cod}
document.getElementById('megakarta').onclick= videoclick
</script>	

<div id="body_karta" style=" padding:5px; border:1px solid #6079D1; text-align:center;">

            </div>


то есть получается надо вставить через яваскрипт другой яваскрипт с картой от гугля чтоб показывалась эта карта. можно ли так ?
само собой приведенный выше код не работает. судя по всему из за того что браузер воспринимает закрывающий яваскрипт тег как закрывающий внешний открывающий тег и на страницу вываливается следующее:

'
 
//---------------
var statusElem = document.getElementById('body_karta')
 statusElem.innerHTML = '<br>'+cod}
document.getElementById('megakarta').onclick= videoclick
</script>    
 
<div id="body_karta" style=" padding:5px; border:1px solid #6079D1; text-align:center;">
 
            </div>


Зато если просто вставить код содержащий вызов карты гугла то все оно работает.
Ответить с цитированием
  #2 (permalink)  
Старый 10.10.2008, 10:32
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Динамическое подключение js-файла:
var s = document.createElement('SCRIPT');
s.type = 'text/javascript';
s.src = '/js/myscript.js';
document.body.appendChild(s); // Эта строчка будет работать только после открытия тэга body
Ответить с цитированием
  #3 (permalink)  
Старый 10.10.2008, 11:05
Новичок на форуме
Отправить личное сообщение для AntonPetrovich Посмотреть профиль Найти все сообщения от AntonPetrovich
 
Регистрация: 10.10.2008
Сообщений: 4

Сообщение от Kolyaj Посмотреть сообщение
Динамическое подключение js-файла:
var s = document.createElement('SCRIPT');
s.type = 'text/javascript';
s.src = '/js/myscript.js';
document.body.appendChild(s); // Эта строчка будет работать только после открытия тэга body
всмысле?
то есть если мне надо чтоб по клику на ссылке вставлялся этот код и выполнялся.
как мне применить выше написанное для решение данное проблемы .

я так понимаю что указанным вами способом просто подцепиться внешний скрипт ?.
Ответить с цитированием
  #4 (permalink)  
Старый 10.10.2008, 13:52
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

А нельзя там iframe сделать, в котором будет карта?
При нажимании на владку будете показывать этот iframe.
Ответить с цитированием
  #5 (permalink)  
Старый 10.10.2008, 14:47
Новичок на форуме
Отправить личное сообщение для AntonPetrovich Посмотреть профиль Найти все сообщения от AntonPetrovich
 
Регистрация: 10.10.2008
Сообщений: 4

можно наверно все . но как сделать этот Iframe
Ответить с цитированием
  #6 (permalink)  
Старый 10.10.2008, 16:00
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

ну хотя бы так:
var ifr =  document.createElement('iframe');
ifr.src = "";
ifr.style.здесь_разные_стили = и позиционирование;
див_где_должна_открываться_карта.appendChild(ifr);
Ответить с цитированием
  #7 (permalink)  
Старый 11.10.2008, 13:30
Кандидат Javascript-наук
Отправить личное сообщение для magistr_bender Посмотреть профиль Найти все сообщения от magistr_bender
 
Регистрация: 07.09.2008
Сообщений: 133

а как по мне так вариант с динаическим подгружением скрипта интереснее... хотя первое что мне пришло в голову это именно ифрэйм)
а насчёт использования надо вставлять его суда
в функцию которую вызывает событие онклик
Ответить с цитированием
  #8 (permalink)  
Старый 13.10.2008, 11:57
Новичок на форуме
Отправить личное сообщение для AntonPetrovich Посмотреть профиль Найти все сообщения от AntonPetrovich
 
Регистрация: 10.10.2008
Сообщений: 4

таак после использования ифрэймов возник такой вопрос. а можно как нибудь ограничить колчисетво вставляемых фрэймов ?. то есть у меня получается вот как на этой странице:

http://javascript.ru/ajax/transport/...ozdaiem-iframe

то есть много раз тыкаем на кнопку - много появляется фрэймов. а нужно чтоб один
Ответить с цитированием
  #9 (permalink)  
Старый 13.10.2008, 12:29
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

if (!ifr) {
    var ifr =  document.createElement('iframe');
    ifr.style.здесь_разные_стили = и позиционирование;
    див_где_должна_открываться_карта.appendChild(ifr);
}
ifr.src = "";

Как-то так.
Ответить с цитированием
  #10 (permalink)  
Старый 13.10.2008, 12:33
Кандидат Javascript-наук
Отправить личное сообщение для SunnyDay Посмотреть профиль Найти все сообщения от SunnyDay
 
Регистрация: 22.09.2008
Сообщений: 111

Для динамически сгенереного кода (например твой клик по ссылке), есть функция
eval("[javascriptcode]");
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Остановить выполнение скрипта Nonam Общие вопросы Javascript 22 04.05.2009 01:45
Простой вопрос - надо из скрипта перейти на ссылку Brother Общие вопросы Javascript 1 27.02.2008 09:50