Javascript.RU

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

Передать параметры в html tag.
Добрый день! Помогите пожалуйста со следующей задачей.

Есть некая ссылка, которая отвечает за вывод всплывающего окна на сайте. Окно делается при помощи плагина для джумлы - sexylightbox.
Не суть.

Мне нужно сделать так, чтобы при каждом вызове окна, вызывалась функция, которая будет считать параметры монитора и динамически встраивать нужные параметры окна.

Собственно вот ссылка вызова окна, с параметрами 800 и 1260.
<a href='/calc/index.php?step=1&TB_iframe=true&height=800&width=1260' rel='sexylightbox'>

Мне рекомендовали сделать так -
<a href='/calc/index.php?step=1&TB_iframe=true&height=800&width=1260' onclick="work(this.href);" rel='sexylightbox'>


<script language="javascript" type="text/javascript">

function work(href) {

var scr_wdt = screen.width;
var scr_hgt = screen.height;

var win_wdt = (scr_wdt / 2) + 300;
var win_hgt = (scr_hgt / 2) + 200;

//некий код передачи параметров.

}

</script>

вопрос - как вернуть параметры в эту ссылку и подставить их в нужные места? Я не знаю =(

Мне нужно что то типа:

<a href='/calc/index.php?step=1&TB_iframe=true&height=$(my_param_x)&width=$(my_param_y) onclick="work(this.href);" rel='sexylightbox'>

Огромное спасибо за помощь!
Ответить с цитированием
  #2 (permalink)  
Старый 25.12.2013, 17:19
Новичок на форуме
Отправить личное сообщение для Shelimov Посмотреть профиль Найти все сообщения от Shelimov
 
Регистрация: 21.12.2013
Сообщений: 9

Как вариант:
<a href="/blabla/" target="_blank">Link</a>


document.getElementsByTagName('a')[0].onmousedown = function() {
    
    var scr_wdt = screen.width,
        scr_hgt = screen.height,
        win_wdt = (scr_wdt / 2) + 300,
        win_hgt = (scr_hgt / 2) + 200;
    
    this.href += "?width=" + win_wdt + "&height=" + win_hgt; 
}


Или второй вариант:
<a href='/calc/index.php?step=1&TB_iframe=true&height=%(my_param_x)%&width=%(my_param_y)%' onmousedown='work();' rel='sexylightbox'>


function work() {
    var scr_wdt = screen.width,
        scr_hgt = screen.height,
        win_wdt = (scr_wdt / 2) + 300,
        win_hgt = (scr_hgt / 2) + 200,
        my_params = {
            my_param_x: win_wdt,
            my_param_y: win_hgt
        }, param_name;
    
    for (param_name in my_params) {
        this.href = this.href.replace('%(' + param_name + ')%', my_params[param_name]);   
    };
       
}

Последний раз редактировалось Shelimov, 25.12.2013 в 17:28.
Ответить с цитированием
  #3 (permalink)  
Старый 25.12.2013, 17:46
Аспирант
Отправить личное сообщение для broadcast77 Посмотреть профиль Найти все сообщения от broadcast77
 
Регистрация: 25.12.2013
Сообщений: 31

Спс за помощь, но увы ни так, ни так не работает)
Хотя второй вариант должен работать. Во втором варианте - окно мерцает, но не появляется.
Ответить с цитированием
  #4 (permalink)  
Старый 25.12.2013, 18:00
Новичок на форуме
Отправить личное сообщение для Shelimov Посмотреть профиль Найти все сообщения от Shelimov
 
Регистрация: 21.12.2013
Сообщений: 9

Пардон, совсем забыл, что контекст this внутри функции work не сохраняется.
Вот рабочий вариант:
<a href='/calc/index.php?step=1&TB_iframe=true&height=%(my_param_x)%&width=%(my_param_y)%' onmousedown="work(this);" rel='sexylightbox' target="_blank">Link</a>


function work(el) {
        var scr_wdt = screen.width,
            scr_hgt = screen.height,
            win_wdt = (scr_wdt / 2) + 300,
            win_hgt = (scr_hgt / 2) + 200,
            my_params = {
                my_param_x: win_wdt,
                my_param_y: win_hgt
            }, param_name;
        
        for (param_name in my_params) {
            el.href = el.href.replace('%(' + param_name + ')%', my_params[param_name]);   
        };      
  };


http://jsbin.com/agabUdAq/1/edit

Минус в том, что код не сработает, если будет клик не кнопкой мыши, а колесиком, например.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как из js передать параметр в html wins Общие вопросы Javascript 6 22.12.2013 15:56
как передать измененные параметры AJAX в другую функцию? akselei Элементы интерфейса 2 19.10.2013 12:46
Передать значение из html в js Mateus jQuery 3 24.12.2012 18:58
Передать параметры через HREF в AJAX izcian Общие вопросы Javascript 5 18.08.2012 20:04
Запустить скрыто батник и передать ему параметры Рома3 Общие вопросы Javascript 2 18.10.2010 23:17