2015-03-07 2 views
0

Я запускаю этот скрипт на своей странице, чтобы заменить mc= на MediaCode= в моем url, скрипт работает, но он продолжает перезагружать страницу снова и снова.JavaScript продолжает перезагружать мою страницу

Это сценарий:

<script>location.href = location.href.replace('mc=', 'MediaCode=')</script> 
+2

Тест для mc = перед заменой, в противном случае местоположение всегда заменяется, и вы перенаправляетесь. – bobdye

+0

Так что мне нужно сначала проверить его, а затем, если его встретить, перейдите на замену? Кажется логичным, но я понятия не имею, как это сделать :-) –

ответ

0

Почему бы не поставить эту строку в условие if? Это будет проверить, содержит ли URL нужную строку или нет, и перезарядить на его основе:

if(location.href.match(/mc\=/)!=null){ 
    location.href=location.href.replace(/mc\=/,'MediaCode='); 
} 

Вот альтернативный способ проверки и замены:

if((/mc\=/).test(location.href)){ 
    location.replace(/mc\=/,'MediaCode='); 
    // Uses location.replace instead of String.prototype.replace 
} 
+0

Я не думаю, что присвоение 'location.href = location.href' перезагружает страницу - не делает это в консоли Chrome, по крайней мере, для меня. На основе консоли Chrome я считаю, что назначение location.href = location.href.replace (/ mc \ = /, 'MediaCode =') 'работает так же, если текст фактически не заменяется, а результат отличается от' location.href '. – fzzfzzfzz

+1

Вы правы ... но почему он постоянно перезагружается для OP тогда? – Xufox

+0

Я просто использовал этот код, он останавливает цикл страниц, но он не заменяет mc = на Mediacode = в URL-адресе, к сожалению :-( –

2

когда вы кладете

location.href = someHref 

вы делаете JS, чтобы перезагрузить страницу. Затем, я думаю, он снова встречает эту линию и продолжает перезагружать

0

Решение это небольшое изменение к решению Xufox в

<script type="text/javascript">$(document).ready(function() { 
if(window.location.href.indexOf("mc=") > -1) { 
location.href = location.href.replace('mc=', 'MediaCode=') 
}}); 

Большое спасибо т o Xufox

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