Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Location.hash (https://javascript.ru/forum/dom-window/40208-location-hash.html)

salat-production 28.07.2013 00:48

Location.hash
 
Имеется простенький скриптец для модльных окон PrettyPhoto.

хэш который присваивается элементу не воспринимается в условии.

Стандартная функция:
function setHashtag(){
    if(typeof theRel == 'undefined') return;
    location.hash = theRel+'/'+rel_index+'/';
};


То что хочу видеть:
function setHashtag(){
    if(typeof theRel == 'undefined') return;
    location.hash = theRel+'='+rel_index;
};


Так вот суть в том, что по ссылке
Код:

http://mysite.ru/video/twd.php#id/1/
- при переходе открывает модальное окно
Код:

http://mysite.ru/video/twd.php#id=1
- при переходе ничего не происходит

Есть такая конструкция, которая грабит ссылку (не понимаю имеет ли она отношение к этому косяку):

if(!pp_alreadyInitialized && getHashtag())
    {
    pp_alreadyInitialized = true;

    hashIndex = getHashtag();
    hashRel = hashIndex;
    hashIndex = hashIndex.substring(hashIndex.indexOf('/')+1,hashIndex.length-1);
    hashRel = hashRel.substring(0,hashRel.indexOf('/'));

    setTimeout(function(){ 
    $("a["+pp_settings.hook+"^='"+hashRel+"']:eq("+hashIndex+")").trigger('click'); },50);
    }


Если кто не ленивый здесь полный скрипт: http://jsfiddle.net/yhtLz/
Параметр в 752 строке

Я уже все..в ауте. не понимаюв чем лаг.
Заранее огромное спасибо :yes:

T-sh 28.07.2013 00:52

очевидно, если вы что-то меняете в setHashtag(), нужно это же менять в getHashtag(). Покажите эту функцию.

salat-production 28.07.2013 00:55

function getHashtag(){
		var url = location.href;
		hashtag = (url.indexOf('#id') !== -1) ? decodeURI(url.substring(url.indexOf('#id')+1,url.length)) : false;

		return hashtag;
	};

T-sh 28.07.2013 01:08

в setHashtag()
location.hash = theRel+'='+rel_index+';';


так попробуйте.. или в getHashtag():
decodeURI(url.substring(url.indexOf('#id')+1,url.length+1))

salat-production 28.07.2013 01:15

неа, не хочет хватать :(

T-sh 28.07.2013 01:18

Цитата:

Сообщение от salat-production (Сообщение 264581)
неа, не хочет хватать :(

сохраните страницу на которой работаете и выложите архив сюда. в песочнице с таким куском кода нереально разбираться..

salat-production 28.07.2013 01:51

Вложений: 1
function setHashtag();

На 874 строке

T-sh 28.07.2013 03:18

856-857 стр:
hashIndex = hashIndex.substring(hashIndex.indexOf('=')+1,hashIndex.length);
hashRel = hashRel.substring(0,hashRel.indexOf('='));


869:
hashtag = (url.indexOf('#id') !== -1) ? decodeURI(url.substring(url.indexOf('#id')+1,url.length)) : false;


876:
location.hash = theRel + '=' + rel_index;

salat-production 28.07.2013 04:25

T-sh,
Большое спасибо.
Тоже самое делал, да не совсем.

salat-production 28.07.2013 04:52

А если уж такая малина пошла.
Как сюда правильно прикрутить replace("#","?")


Часовой пояс GMT +3, время: 08:23.