2014-01-15 3 views
0

У меня есть страница с <a> тегами ссылки, направляющие на скрипт JS (модальные окна), но если кто-то пришел и выключил JS, эта страница не будет работать. Поэтому я хочу сделать это функционально как для случая, JS включения и выключения ..JS переписать все ссылки href по ID

Вот идея для перезаписи "HREF" ссылки с JS скрипт ..

JS прочь:

<a id="first" href="main.php?page=something">Link</a> 

JS на:

<a id="first" href="#something">Link</a> 

Я стараюсь это:

<a id="first" href="main.php?page=something">Link</a> 

<script type="text/javascript"> 
document.getElementById("first").href= "#something"; 
</script> 

, но это только добавить "#something" к имени файл (пример: если файл с именем something.php, URL собирается быть "something.php # что-то"), а не переписать его ..

любое предложение для чего-то действительно простого? работая над идентификаторами, потому что есть несколько ссылок, которые нужно переписать .. и нет jQuery pls.

ответ

0

Что вы имеете в виду? Используя ваш пример он переписывает его #something не something.php # что-то ...

document.getElementById("first").href= "#something"; 

jsfiddle

+0

Это был ответ на его собственный вопрос, который он сам ответил. Как это не ответ? – Bowenac

+0

Должен признаться, я не проверяю этот сценарий на реальной ситуации, только как тест. После этого комментария я тестирую его на реальной странице, и это действительно работает.Прошу прощения, длинный и тяжелый день для меня .. спасибо .. –

1

Попробуйте.

for (var i = 0, links = document.links; i < links.length; ++i) { 
    if (links[i].search.indexOf("page=") > -1) 
     links[i].href = "#" + links[i].search.split("page=")[1].split("&")[0] 
} 

http://jsfiddle.net/CByhw/

+0

Если я не ошибаюсь, это изменяет каждый href на #something? если это так, так что это не то, что я хочу. –

+0

@ TichomírDuchaplný: Нет, конечно нет. Он изменит каждый 'href', который имеет параметр' page = 'query в значение этого параметра для этой ссылки. Как вы это делаете, вам нужно жестко изменить каждое изменение и надеяться, что вы никогда не ошибетесь. Вот еще одна демонстрация http://jsfiddle.net/CByhw/1/ –

+0

Это классно, но немного сложно. У меня есть несколько ссылок, и они не соответствуют (я надеюсь, что это правильное слово) .. просто, например: link is ? page = login и вариант JS #singup .. но, возможно, в другом проекте, я собираюсь использовать это, спасибо .. –

0

Самый простой способ добавить click событие для всех ссылок, которые должны отображать модальные диалоговые окна.

HTML:

<a href="main.php?page=something" data-modal="something">Link</a> 

JavaScript:

var anchors = document.querySelectorAll('a[data-modal]'); 
for (var i = 0, len = anchors.length; i < len; i++) { 
    anchors[i].addEventListener('click', function(e) { 
     var modal = this.getAttribute('data-modal'); 
     showModal(document.getElementById(modal)); 
     e.preventDefault(); 
    }, false); 
} 

DEMO:http://jsfiddle.net/wE3NC/

+0

это действительно мило, спасибо .. –

Смежные вопросы