Можно ли запустить Javascript, когда выбран конкретный якорь? - PullRequest
3 голосов
/ 29 марта 2010

Скажем, у меня есть якорь на веб-странице, например:

<a name="comegetit"></a>

Есть ли способ запустить javascript, если страница находится по ссылке, которая попадает на этот якорь? (например, ссылка типа <a href="http://myawesomewebpage.com/page#comegetit"></a>). Я не думаю, что есть, но я бы хотел, чтобы это было.

Ответы [ 3 ]

3 голосов
/ 29 марта 2010

Если вы ожидаете, что эта строка будет привязана только к URL:

if(window.location.hash == '#comegetit'){
  // Do your stuff.
}

Если вы делаете что-то еще более сложное, вы также можете сопоставить window.location.hash с регулярным выражением.

2 голосов
/ 29 марта 2010

Я использую действительно простую историю (http://code.google.com/p/reallysimplehistory/)

Затем в своем коде я делаю что-то вроде этого:

window.dhtmlHistory.create();
window.dhtmlHistory.initialize();   
window.dhtmlHistory.addListener(function(hash){
    // this is where you process your hash and do something special
    // and totally funky
});

Это даже срабатывает при начальной загрузке страницы, если вы случайно добавили в закладки хеш-тег или еще много чего.

Довольно полезно, и абстрагируется от всех специфичных для браузера B.S. поставляется с window.location.hash

Josh

1 голос
/ 29 марта 2010

Вы можете попытаться воздействовать на событие onload и проверить содержимое window.location для извлечения идентификатора фрагмента ... оно должно работать.

...