Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Передать параметры в html tag. (https://javascript.ru/forum/misc/43892-peredat-parametry-v-html-tag.html)

broadcast77 25.12.2013 16:59

Передать параметры в 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'>

Огромное спасибо за помощь!

Shelimov 25.12.2013 17:19

Как вариант:
<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]);   
    };
       
}

broadcast77 25.12.2013 17:46

Спс за помощь, но увы ни так, ни так не работает)
Хотя второй вариант должен работать. Во втором варианте - окно мерцает, но не появляется.

Shelimov 25.12.2013 18:00

Пардон, совсем забыл, что контекст 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

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


Часовой пояс GMT +3, время: 16:36.