Элемент <input type="image" ...>
Как с помощью JavaScript присвоить значения переменным foo_x и foo_y элемента формы <input type="image" name="foo" id="foo" onclick="getFoo();"/> при клике в функции getFoo() ?
Как ни пытался - ничего не выходит. |
Мел,
Не понял, присвоить переменные этому DOM элементу, или что? Добавил: Или вы имеете в виду получение переменных x и y, которые передаются по сабмиту на сервер? Получить их напрямую из JavaScript нельзя, придется получать их точно так же, как и для других элементов. |
Да.
(Кпримеру, на PHP на стороне сервера я бы сделал так : <? $foo_x=$_POST['foo_x']; $foo_y=$_POST['foo_y'] ; ?>, либо <? $foo_x=$_GET['foo_x']; $foo_y=$_GET['foo_y'] ; ?>, в зависимости от метода GET или POST, но мне нужно сделать это на стороне клиента с помощью JavaScript. PS: Я новичек в JavaScript. |
Опять сообщение продублировалось. Видимо я тороплюсь.
|
Цитата:
|
Мел,
Я могу придумать только что-нибудь вот такое: <html> <head> <script> function getOffsets(element) { var left = element.offsetLeft, top = element.offsetTop; var parent = element.offsetParent; while(parent && parent.tagName != "BODY") { left += objParent.offsetLeft; top += objParent.offsetTop; parent = parent.offsetParent; } return {top: top, left: left}; } function getFoo(e, element) { var mouseX = e.clientX; var mouseY = e.clientY; var pos = getOffsets(element); if (pos) { var foo_x = mouseX - pos["left"]; var foo_y = mouseY - pos["top"]; alert([foo_x, foo_y]); } } </script> </head> <body> <input type="image" src="1220100104815.jpg" name="foo" id="foo" onclick="getFoo(event, this)"/> </body> </html> |
Спасибо за помощь.
|
Андрей Параничев, прошу прощения за навязчивость.
Дело в том, что мне нужно передать эти значения (координаты клика по изображению) на сервер и получить ответ, основанный на них, назаметно для пользователя (без перезагрузки страницы). Получается, есть только 2 варианта: либо через скрытый фрейм, с помощью $_GET или $_POST, либо используя Ваше предложение + XMLHttpRequest (даже без <input type="image"> , а просто <img>) ? PS: Кстати, задавал такой же вопрос про <input type="image" ...> на форуме посвященном JsHttpRequest, но ответа не получил, видимо с помощью JsHttpRequest тоже нельзя. Извиняюсь, если глупо звучит - только начал разбираться с этой темой. |
Мел,
Да, получается только два варианта. А чем вам помочь? |
Андрей Параничев,
большое спасибо, пока больше ничем - надо поюзать. Я вообще раньше думал, что JavaScript мне никчему - достаточно CSS, PHP. Теперь понял - JavaScript просто необходим. Буду изучать. |
Часовой пояс GMT +3, время: 08:15. |