|
|
|
| Помогите пожалуйста. Не работает такая штука:
php-скрипт, в котором используется обработка посредством JavaScript:
........
<script language="JavaScript" type="text/javascript">
........
function gotolocationhref(brbr, brbr1) {
if(navigator.appName == "Netscape"){
var y = window.pageY;
}
window.location.href=brbr+brbr1+"&x=" + event.pageX + "&y=" + event.pageY;
}
.......
<?php
.......
?>
.......
<a onClick="gotolocationhref('<?echo$str;?>','<?echo$str1;?>')">Ссылка</a>
.......
|
Т.е. в администрате удаляется определенный топик. Данные находятся в Базе Данных, скрипт делает запрос на самого себя же, считывает данные методом GET, берет id топика, вобщем с выполнением php скрипта никаких проблем. Но, мне хотелось бы экран/окно позиционировать таким образом, чтобы после выполнения определенных действий (в данном случае после удаления топика) JavaScript считывал из командной строки значения Х и Y, введенные до запроса. А сами эти значения Х и Y - представляют из себя не что иное, как позицию экрана/окна, относительно левого верхнего угла документа. Проблема состоит в следующем: не могу считать Х и Y - параметры нахождения окна в момент клика. Таким образом, после совершенных действий позиция экрана "швыряен" нас в самый верх. Помогите пожалуйста найти ошибку. | |
|
|
|
|
|
|
|
для: DBFS
(17.10.2007 в 21:10)
| | О каком окне идет речь, об окне открытом методом window.open? | |
|
|
|
|
|
|
|
для: sim5
(17.10.2007 в 21:45)
| | Нет. Обычный php-скрипт. Мы имеем адресс и соответственно строку запроса:
str1="&idopinion=".$rowop["id_opinion"];
$str="${_SERVER['SCRIPT_NAME']}?${_SERVER['QUERY_STRING']}";
|
которые подаются в виде параметров в функцию JavaScript, и в этой функции необходимо считать X и Y - координаты местоположения окна/экрана относительно начала документа. Т.е. проблема чем то напоминает ситуацию с якорями, но якоря не подходят, требуется точная фиксация экрана и дальнейшее открытие этого же php-скрипта, тоесть переадресация на него же самого, с этими параметрами X и Y, для дальнейшего задания позиции экрана с помощью window.moveTo(X, Y). | |
|
|
|
|
|
|
|
для: Dmitry Berkut
(17.10.2007 в 21:53)
| | Т.е. для краткости изложения проблемы я выложил самое основное, и даже меньше)))!
Ссылка представляет собой передачу методом get в стоку состояния - id топика, который необходимо удалить. Происходит переадресация на этот же скрипт, удаляется из БД топик, и загружается эта же страница но уже без того, что мы, собсно, только что удалили. Вот. Но, необходимо, как я уже неоднократно)))) заявил установить позицию экрана на место, в котором экран находился до удаления. | |
|
|
|
|
|
|
|
для: Dmitry Berkut
(17.10.2007 в 22:02)
| | Окно не может быть относительно документа. Вы хотите чтобы позиция документа в окне не изменилась? Ну тогда примените в ссылке анкер. Если вы удалили ниже следующую запись, то передавайте на сервер имя анкера выше или ниже стоящей записи (как вам более подходит). "Плавного" не получится, но позиционироваться будет в нужной области документа. | |
|
|
|
|
|
|
|
для: sim5
(17.10.2007 в 22:10)
| | Я такой вариант в голове сразу представил: на счет передачи анкера снизу, но мне он не понравился, потому что при удалении сообщения экран все равно прыгает в верх или низ. Неужели невозможно посредствами JavaScript создать фиксацию, с помощью координат X и Y, фиксацию положения окна относительно документа??? | |
|
|
|
|
|
|
|
для: Dmitry Berkut
(17.10.2007 в 22:14)
| | Почему, можно, учитывая скроллинг документа, получать по клику обект документа, вычислять его позицию и т.д. Потом с учетом этого производить скроллинг документа при загрузки... Зачем это? Ради того чтобы "красиво" остановиться в нужном месте? | |
|
|
|
|
|
|
|
для: sim5
(17.10.2007 в 22:22)
| | Да, пожалуйста, можете мне "напячятать" код, в котором я считываю координаты объекта. Сразу говорю, что такой вариант почему то не пашет:
x = window.event.srcElement.event.x;
|
потому как srcElement - возвращает элемент, с которого началось прохождение события! | |
|
|
|
|
|
|
|
для: sim5
(17.10.2007 в 22:10)
| | Т.е., смотрите, вся проблема состоит в том, (чтобы не углубляться), чтобы считать во время ивента(event), т.е., во время клика по ссылке (а таких ссылок челая колонка и очень высокая) в этот момент взять координату Y/X, которая является расстоянием от левого верхнего угла начала документа до верхнего левого угла экрана/позиции экрана в этот момент (кликание по ссылке). Вот вся проблема, которая меня сегодня настигла))))!!! Помогите плиз! | |
|
|
|
|
|
|
|
для: Dmitry Berkut
(17.10.2007 в 22:24)
| | Вы удаляете запись, например, щелчком по кнопке/сслыке, а вам надо определить положение области документа которая будет удалена. Значит надо получить объект в котором находится удаляемая область, потом ее координаты... А event даст вам координаты ссылки. Презагружайте страницу, указывайте анкер ниже стоящего... | |
|
|
|
|
|
|
|
для: sim5
(17.10.2007 в 22:35)
| | Нет, ну относительно анкеров, помоему все понятно. Я хотел бы решить проблему просредством приобретения с помощью JavaScript координаты x и/или y этого объекта/ссылки относительно начала документа, а там можно уже и с экраном разобраться, зная разрешение экрана пользователя это не составит особого труда. Ну так мне сможет кто-нибудь помочь написать код получения координаты Х этого объекта, собсно ссылки, по которой мы клачаем? | |
|
|
|
|
|
|
|
для: sim5
(17.10.2007 в 22:35)
| | Ребята, тут программисты сидят??? Или служба моральной поддержки????? | |
|
|
|
|
|
|
|
для: Dmitry Berkut
(18.10.2007 в 14:34)
| | используйте document.body.scrollTop для получения текущего значиния и его же для установки после удаления.
http://javascript.aho.ru/files/js/BODY.html#scrollLT | |
|
|
|
|
|
|
|
для: AlexSol
(18.10.2007 в 15:14)
| | Хорошо, большущее спасибки - помогло, причем работает и в Netscatpe и в IE. Но, может мне кто-нибудь подсказать как прописать вот такую вот байду для Netscatpe:
Для того, чтобы снять координаты относительно объекта Screen, координаты элемента, по которому производим "клацание".??????? | |
|
|
|
|
|
|
|
для: AlexSol
(18.10.2007 в 15:14)
| | А вобще, встречал кто-нибудь ресурс, на котором было бы что-то вроде таблицы, в которой было бы разграничение всевозможных свойств объектов для каждого из броузеров?????????
Все что мне пока удалось найти, это:
NN eventObj
IE window.event
|
| |
|
|
|
|
|
|
|
для: Dmitry Berkut
(18.10.2007 в 17:02)
| | Все, я уже сам нашел:
http://javascript.aho.ru/files/js/event_model.html#fff
там очень клевая таблица:
Свойство/действие | NN4 | IE4+ | NN6 | | |
|
|
|
|
|
|
|
для: AlexSol
(18.10.2007 в 15:14)
| | Народ!!!! Меня постигла новая проблема. document.body.scrollTop - это конечно очень хорошо! Но, есть небольшое "но"!
Когда считывается значение Х и Y из командной строки, переданное методом GET, я вновь задаю document.body.scrollTop, но нифига не получается:
<?php
if((isset($_GET["yst"]))&&($_GET["xsl"]))
{
$yst=$_GET["yst"];
$xsl=$_GET["xsl"];
echo"<script language='JavaScript' type='text/javascript'>";
echo"<!--";
echo"document.body.scrollTop=$yst;";
echo"document.body.scrollTop=$xsl;";
echo"//-->";
echo"</script>";
}
?>
|
| |
|
|
|
|
|
|
|
для: Dmitry Berkut
(18.10.2007 в 20:11)
| | Блин, не понимаю, почему оно не пашет. Я уже даже добавил функцию eval(), для преобразования строки в числовое значение:
<?php
if((isset($_GET["yst"]))&&($_GET["xsl"]))
{
$yst=$_GET["yst"];
$xsl=$_GET["xsl"];
echo"<script language='JavaScript' type='text/javascript'>";
echo"<!--";
echo"document.body.scrollTop= eval(".$yst.");";
echo"document.body.scrollTop= eval(".$xsl.");";
echo"//-->";
echo"</script>";
}
?>
|
| |
|
|
|
|
|
|
|
для: Dmitry Berkut
(18.10.2007 в 20:15)
| | Народ!!! У кого "меткий" глаз-алмаз, гляньте, найдите ошибку, бо запарился уже - не устанавливается этот дурацкий document.body.scrollTop | |
|
|
|
|
|
|
|
для: Dmitry Berkut
(18.10.2007 в 20:22)
| | Гы-гы!!! Я сам себе помогу. Уже нашел ошибку:
echo"document.body.scrollTop= eval(".$yst.");";
echo"document.body.scrollTop= eval(".$xsl.");";
|
Два раза задаю Top - первый раз нормально, второй раз задаю Top-у координату, котороя призначается для Left - echo"document.body.scrollLeft | |
|
|
|
|
|
|
|
для: Dmitry Berkut
(18.10.2007 в 20:31)
| | Ха-ха! Не работает оно зараза, нихрена. Ужа даже изменил вот так:
<?php
if(isset($_GET["yst"]))
{
$yst=$_GET["yst"];
echo"<script language='JavaScript' type='text/javascript'>";
echo"<!--";
echo"document.body.scrollTop=98;";
echo"alert('document.body.scrollTop'+document.body.scrollTop);";
echo"//-->";
echo"</script>";
}
|
document.body.scrollTop вобще не хочет задаваться!!!
Help!!!! Sos!!!!! | |
|
|
|
|
|
|
|
для: Dmitry Berkut
(18.10.2007 в 20:31)
| | вообщето такое дело надо на onload документа вешать. | |
|
|
|
|
|
|
|
для: AlexSol
(18.10.2007 в 20:48)
| | а можно код, просто за сегодняшний день уже голова вообще отказывается сображать, я понимаю, что это пустяки, но все же? | |
|
|
|
|
|
|
|
для: Dmitry Berkut
(18.10.2007 в 21:03)
| | Я еще побаиваюсь, что это связано с моим хостом. он бесплатный и в конце, после всей загрузки php-содержимого, перед тем, как window.status - покажет "готово", вверху справа появляется маленький баннер-рекламка. Может это она каким то образом влияет на задание скрола программным путем? | |
|
|
|
|
|
|
|
для: AlexSol
(18.10.2007 в 20:48)
| | Ой, Вы не поверите, - РАБОТАЕТ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!
<body background="images/bg103.gif" onLoad="javascript:document.body.scrollTop=50;">
|
теперь ОСТАЛОСЬ "вклинить" в этот onLoad условие, на php разумеется! | |
|
|
|
|
|
|
|
для: Dmitry Berkut
(18.10.2007 в 21:09)
| |
<body background="images/bg103.gif" <?php if(isset($_GET["yst"])){ $yst=$_GET["yst"]; echo"onLoad='javascript:document.body.scrollTop=".$yst.";'";} ?> ">
|
| |
|
|
|
|
|
|
|
для: Dmitry Berkut
(18.10.2007 в 21:16)
| | пашет, только как убрать вот этот вот момент? Когда оно только начинает загружаться, оно на мгновение все равно вверх тащится, потом уже до него "доходит" что необходимо опуститься, потому что в теге BODY задано значение при onLoad.... | |
|
|
|