Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Изменить href ссылки. [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): « 1 [2]   

> Без описания
DlTA
Отправлено: 19 Ноября, 2012 - 22:03:00
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




можно каждую секунду, можно дождаться пока чет там подгурится еще немного подождать пока скрипт выполнится и тоже проверить,
а можно сцуть задачи более ясно, а то как то сложно понять че именно требуется
 
 Top
Dezmont
Отправлено: 19 Ноября, 2012 - 23:16:28
Post Id



Частый гость


Покинул форум
Сообщений всего: 245
Дата рег-ции: Июль 2010  


Помог: 1 раз(а)




Есть страница:
CODE (htmlphp):
скопировать код в буфер обмена
  1. http://www.rememberthemilk.com/home/dezmont/#section.tasks

На ней ссылка:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <a href="webcal://www.rememberthemilk.com/icalendar/dezmont/29096484/events/?tok=eJwNzTkOAzEIQNETWWI1*DhggxQpS5GpcvpM96v3xVKDbGMbcDGeIsTmE1pbLYVpFji5rnKNjI6dWWStkzSPj1O-1*d9jefjew1asKa4DN6yG9QsgnxnBIaqCwMCty6*wc6Z4oQHNIDyblu*TO51xx*0Aio9" id="icalendareventslista" class="noteadd" style="font-weight: bold; padding-left: 4px; font-size: 0.95em; vertical-align: bottom;">iCalendar<span style="margin-left: 17px; text-decoration: underline; display: block;">(Событий)</span></a>

К этой ссылке в конце нужно прибавлять уникальный идентификатор в текущий момент времени, т.е. каждую секунду. Я преположил, что это может быть timestamp.
Т.е. нужно поменять ссылку на странице на вот такую:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <a href="webcal://www.rememberthemilk.com/icalendar/dezmont/29096484/events/?tok=eJwNzTkOAzEIQNETWWI1*DhggxQpS5GpcvpM96v3xVKDbGMbcDGeIsTmE1pbLYVpFji5rnKNjI6dWWStkzSPj1O-1*d9jefjew1asKa4DN6yG9QsgnxnBIaqCwMCty6*wc6Z4oQHNIDyblu*TO51xx*0Aio9&1234567" id="icalendareventslista" class="noteadd" style="font-weight: bold; padding-left: 4px; font-size: 0.95em; vertical-align: bottom;">

CODE (htmlphp):
скопировать код в буфер обмена
  1. [code=htmlphp]
  2. <a href="webcal://www.rememberthemilk.com/icalendar/dezmont/29096484/events/?tok=eJwNzTkOAzEIQNETWWI1*DhggxQpS5GpcvpM96v3xVKDbGMbcDGeIsTmE1pbLYVpFji5rnKNjI6dWWStkzSPj1O-1*d9jefjew1asKa4DN6yG9QsgnxnBIaqCwMCty6*wc6Z4oQHNIDyblu*TO51xx*0Aio9&1234568" id="icalendareventslista" class="noteadd" style="font-weight: bold; padding-left: 4px; font-size: 0.95em; vertical-align: bottom;">

Изменения в самом конце href ссылки: &1234567, &1234568
И так далее.

(Отредактировано автором: 19 Ноября, 2012 - 23:17:55)

 
 Top
DeepVarvar Супермодератор
Отправлено: 19 Ноября, 2012 - 23:21:56
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Dezmont пишет:
Гугл выдал hashchange. Может подойдёт?
Если "ослик ИА" некритичен, то в самый раз, если критичен, то в бесконечном цикле, сохраняя предыдущее значение и сравнивая его с текущим, + history.js, иначе не будет работать так, как в остальных работает.
 
 Top
Dezmont
Отправлено: 19 Ноября, 2012 - 23:52:51
Post Id



Частый гость


Покинул форум
Сообщений всего: 245
Дата рег-ции: Июль 2010  


Помог: 1 раз(а)




Вот так вот написал, но что-то ничё не работает. А завтро на работу....=)
Подскажите плз.
CODE (javascript):
скопировать код в буфер обмена
  1. if ("onhashchange" in window) {
  2.     var iCal = document.getElementById('icalendareventslista').href;
  3.     if(location.hash == '#section.tasks'){
  4.         var date = new Date().valueOf();
  5.         var hashHandler = function (event) {
  6.             document.getElementById('icalendareventslista').href = iCal + '&' + date;
  7.         }
  8.     }
  9.     window.addEventListener("hashchange", hashHandler, false);
  10. }
 
 Top
DlTA
Отправлено: 20 Ноября, 2012 - 09:20:30
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




чет не догоню, у вас хеш дописывается после якоря?
якорь и все что дальше вроде не приходят на сервер
 
 Top
Dezmont
Отправлено: 20 Ноября, 2012 - 13:56:03
Post Id



Частый гость


Покинул форум
Сообщений всего: 245
Дата рег-ции: Июль 2010  


Помог: 1 раз(а)




DlTA пишет:
чет не догоню, у вас хеш дописывается после якоря?
якорь и все что дальше вроде не приходят на сервер


Якорь это символ #? В адресной строке это hash.
На сервер это однозначно не идёт, если в скрипте не задано. Обычно внутренний скрипт и обрабатывает.

З.Ы. Я просто JS вообще не знаю. На уровне гугла только скрипт пишу.
 
 Top
DlTA
Отправлено: 20 Ноября, 2012 - 13:59:08
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




а так и не понял нафига это все пишется?

в чем смысл дописывать в ссылку в яколь случайное число, да еще и многократно?
 
 Top
Dezmont
Отправлено: 20 Ноября, 2012 - 14:39:05
Post Id



Частый гость


Покинул форум
Сообщений всего: 245
Дата рег-ции: Июль 2010  


Помог: 1 раз(а)




DlTA пишет:
а так и не понял нафига это все пишется?
в чем смысл дописывать в ссылку в яколь случайное число, да еще и многократно?


Ээээх...=)
Remember The milk - сервис типа todo листа, с возможностью экспорта созданных мероприятий в Google calendar. Экспорт происходит по нажатию на ссылку, которая имеет вид:
CODE (htmlphp):
скопировать код в буфер обмена
  1. webcal://www.rememberthemilk.com/icalendar/dezmont/29096484/events/?tok=eJwNzTkOAzEIQNETWWI1*DhggxQpS5GpcvpM96v3xVKDbGMbcDGeIsTmE1pbLYVpFji5rnKNjI6dWWStkzSPj1O-1*d9jefjew1asKa4DN6yG9QsgnxnBIaqCwMCty6*wc6Z4oQHNIDyblu*TO51xx*0Aio9

В GC добавляется календарь, который по-идее в реальном времени должен синхронизироваться с сервисом RTM. Т.е. при добавлении любого нового мероприятия в RTM оно тут же должно появиться в соответствующем календаре GC.
По непонятным причинам гугл уже много лет игнорирует эту проблему и никак не пытается её решить. В итоге, при добавлении мероприятия в RTM, в GC оно может отобразиться через несколько часов-суток. Единственный выход, который был найден, это к ссылке с календарём добавлять случайный параметр вот так:

И т.д. Как я понял Google как-то кеширует календарь и уже потом, по своим личным соображениям, обновляет его. При использовании ссылки с уникальным параметром на конце в GC добавляется актуальный календарь на текущий момент времени.

Сейчас ссылка копируется, вставляется в адресную строку, пишется постфикс и добавляется календарь. Хочется избавиться от этих рутинных операций, чтобы просто при нажатии на ссыку я уже получал готовый календарь.

P/S
Постарался всё понятно изложить. Если что-то ещё неясно, спрашивайте.

(Отредактировано автором: 20 Ноября, 2012 - 14:39:59)

 
 Top
DlTA
Отправлено: 20 Ноября, 2012 - 15:17:24
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




http://otvety[dot]google[dot]ru/otvety/t[dot][dot][dot]0ae70f263e6082c1
Цитата:
часть после # - это хэш, он не передается на сервер,
Dezmont пишет:
&one


короче говоря, не используйте для этих целей якорь, допишите тупо в конец ссылки свое
&notkash=32156468435
 
 Top
Dezmont
Отправлено: 20 Ноября, 2012 - 15:59:44
Post Id



Частый гость


Покинул форум
Сообщений всего: 245
Дата рег-ции: Июль 2010  


Помог: 1 раз(а)




DlTA пишет:
короче говоря, не используйте для этих целей якорь, допишите тупо в конец ссылки свое
&notkash=32156468435

Да я не использую никакие якоря. Это сайт так работает.
Это сторонний сервис, доступа к исходникам я никакого не имею. Я выступаю как пользователь, который хочет упростить себе жизнь с помощью tampermonkey.
Tampermonkey - это такое расширение для chrome, аналог greasemonkey, которое применяет пользовательские скрипты к указанным сайтам в интернете.

Мне по идее просто нужно вот этот скрипт доработать:
CODE (javascript):
скопировать код в буфер обмена
  1. if ("onhashchange" in window) {
  2.     var iCal = document.getElementById('icalendareventslista').href;
  3.     if(location.hash == 'section.tasks'){
  4.         var date = new Date().valueOf();
  5.         var hashHandler = function (event) {
  6.             document.getElementById('icalendareventslista').href = iCal + '&' + date;
  7.         }
  8.     }
  9.     window.addEventListener("hashchange", hashHandler, false);
  10. }

но у меня ничего не получается. =(
З.Ы. Если не сложно, посмотрите сами: http://www[dot]rememberthemilk[dot]com
 
 Top
DlTA
Отправлено: 20 Ноября, 2012 - 17:23:45
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2952
Дата рег-ции: Окт. 2010  


Помог: 53 раз(а)




1) где там страница с этой ссылкой?
2) нафига для хрома дополнение, он по умолчанию это все умеет делать
3) уверены что если изменить основную часть ссылки то при дописывании шеха (кто там ее дописывает) так же изменит обратно и основную часть ссылки?
 
 Top
Dezmont
Отправлено: 20 Ноября, 2012 - 19:30:49
Post Id



Частый гость


Покинул форум
Сообщений всего: 245
Дата рег-ции: Июль 2010  


Помог: 1 раз(а)




DlTA, там если зарегистрироваться, то на будут справа сверху ссылки. Ссылка Задачи. А в ней, с правой стороны ссылки iCalendar.

2.Дополнение немного приятнее. Как стандартными средствами интегрировать - не смотрел просто даже.
3. Я думаю что изменит. Ну на крайний случай, можно будет обновить страницу. Сначала "сайтовый" скрипт отработает, а потом уже мой.
Там в зависимости от хеша должен к ссылке постфикс добавляться.
if(hash=='section.tasks') {
do something...
}
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB