Как я могу использовать Javascript для замены URL-адреса h2 с ограниченным доступом к HTML? - PullRequest
0 голосов
/ 24 декабря 2011

У меня нет доступа к моему HTML-коду, но у меня есть доступ к Javascript в нижней части моего документа.С учетом вышесказанного я хотел бы заменить URL-адрес "/ vistor_signup" новым URL-адресом по своему выбору.Скажем "hxxp: //www.mysite.com/account_signup"

И я также хотел бы сделать то же самое для "/ user_signup", скажем, поменяться местами на "hxxp: //www.mysite.com/ master_signup "

Я должен использовать JavaScript для этого, и у меня нет понимания JS.

Можете ли вы сказать мне, как заставить это работать с кодом JS?

Спасибо

========= КОД НИЖЕ ==========

<div class="grid_12">
<div id="login">
<div class="panel" id="login-form">
<div id="login-promo">
<div class="clear"></div>

<h2><a href="/vistor_signup">Visitor Sign-Up</a> ></h2>

<h2><a href="/user_signup">User Sign-Up</a> ></h2>

</div>
</div>
</div>
</div>
</div>

Ответы [ 3 ]

1 голос
/ 24 декабря 2011

Вы имеете в виду что-то вроде этого:

var anchors = document.body.getElementsByTagName("a");
for(var i=0; i < anchors.length; i++) {
  var anc = anchors[i];
  if (anc.getAttribute("href") == "/visitor_signup") { 
    anc.setAttribute("href", "hxxp://www.mysite.com/account_signup");
  } 
}

ПРЕДУПРЕЖДЕНИЕ : из-за того, как браузер отображает HTML (синтаксический анализ страницы, полуквенциальное извлечение ссылочных ресурсов, оценка JavaScript по пути), может случиться так, что кто-то увидит html до того, как ваш скрипт будет выполнен, и даже щелкнет ссылку / visitor_signup.

0 голосов
/ 24 декабря 2011

В соответствии с вашими ограничениями, особенно

  • Нет доступа к коду
  • Нет идентификатора тега для элементов

Ваша лучшая ставка на

  • используйте document.body.GetElementsByTagName (), чтобы найти все теги
  • на тех, которые проверяют свойство href
  • и изменяют его соответственно

РЕДАКТИРОВАТЬ:Это именно то, что делает ответ @ milan, поэтому не обращайте на это внимания

0 голосов
/ 24 декабря 2011

Поскольку вы не можете редактировать HTML, а <h2> s не дифференцированы, использование jQuery может быть проще, чем использование простого JS для доступа к элементам.

Это может быть jQuery:

$('#login-promo h2:first a').attr("href", "/account_signup").parent().next().find('a').attr("href", "/master_signup");

Здесь мы выбираем первый <h2> <a> и меняем его href. Затем мы возвращаемся к родителю <a>, находим следующий <h2> <a> и меняем его href.

Вы можете проверить пример в этом jsfiddle.

...