Передать параметры в 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, время: 09:09. |