Javascript стрельба по ссылке - PullRequest
0 голосов
/ 10 ноября 2011

Так что мне просто нужна помощь с этим. У меня есть привязка к отдельной странице HTML, все эти страницы связаны с одним внешним файлом JS.

Итак, у меня есть

<!-- language: none -->

page1.html
page2.html
js.js

На странице 1 у меня есть ссылка, которая ссылается на конкретную привязку на странице 2, я хочу, чтобы функция javascript запускалась на странице 2, когда пользователь открывает эту ссылку. Я не могу использовать onclick по ссылке page1, чтобы захватить элемент на странице 2 по ID и вызвать функцию в js из-за остановки xss.

т т; др

page1.html -> Ссылка здесь
page2.html -> пункт назначения здесь, когда пользователь прибывает в пункт назначения, я хочу запустить функцию в файле js. Но ТОЛЬКО когда он прибывает на конкретный якорь на странице 2 по ссылке. (например: ссылка на p1 ведет к page2.html#destination)

Возможно ли это? Я пытался прикрепить обработчики onfocus, onevent и onchange к якору на второй странице, но он не работает.

Ответы [ 2 ]

2 голосов
/ 10 ноября 2011

Да;использовать свойство window.location.hash.Вот так (на странице 2.html):

if(window.location.hash === '#destination') {
    // Call your function here
}
0 голосов
/ 10 ноября 2011

Если вы хотите, чтобы некоторые JS на странице 2 работали только тогда, когда страница 2 поступила определенным образом, то обычным способом сделать это было бы, чтобы страница 1 добавила параметр запроса при переходе на страницу 2 и чтобы страница 2 искала этот параметр запроса.Когда страница2 запускается, она ищет параметр запроса и запускает дополнительный JS, если он присутствует.

Итак, если страница1 равна page1.html, а страница2 - page2.html, то ваша специальная ссылка на странице1 будет ссылаться наpage2.html?action=1.

JavaScript в page2.html будет искать action=1 в URl и запускать его специальный JS, только если он находится на page2.html и находит action=1 в URL.

Все параметры запроса доступны через window.location.search.Если вы не ожидаете каких-либо других параметров запроса, вы можете просто использовать:

if (window.location.search == "?action=1") {
    // execute your code here
}

Если могут быть другие параметры запроса, то вы можете использовать это:

if (window.location.search.match(/(\?|&)action=1($|&)/)) {
    // execute your code here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...