Передать параметры в 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'> Огромное спасибо за помощь! |
Как вариант:
<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]); }; } |
Спс за помощь, но увы ни так, ни так не работает)
Хотя второй вариант должен работать. Во втором варианте - окно мерцает, но не появляется. |
Пардон, совсем забыл, что контекст 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. |