2014-10-14 3 views
1

Я работаю с программным обеспечением, которое не позволяет мне непосредственно редактировать некоторые страницы. Я хотел бы перенаправить зрителей на другой URL-адрес, если просматриваемая страница содержит определенную строку.JS перенаправляет пользователя на другую страницу, если содержит текущий url.

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

<script> 
var EDITURL = window.location.href; 
if ('url:contains("testthis")') { 
window.location.replace("http://www.test.com"); 
}; 
</script> 

Любые идеи?

+0

Я думаю, что это будет работать window.location.href = "http://www.test.com". –

+0

'' url: contains ("testthis") ''- это не условие, это просто простой текстовый литерал ... и поскольку он не пуст, он всегда прав. – CBroe

ответ

3

В JavaScript 'url:contains("testthis")' рассматривается как строка и truthy.

if('your text'){ 
    // code here will always be executed. 
} 

Этот код должен работать:

<script> 
    if(document.location.href.indexOf('testthis') > -1) { 
     // indexOf will return the position of the first occurence of this string in the url 
     // or -1 it it's not there. 
     document.location.href = 'http://www.test.com'; 
    } 
</script> 
1

Как я вижу:

if(EDITURL.indexOf('testthis') > -1) { ... } 

Или тот же менее читаемыми:

if(~EDITURL.indexOf('testthis')) { ... } 
0

насчет:

var fullUrlLink = location.href; 

    if (fullUrlLink.search("/yourelement/") >= 0) { 
     window.location.replace("http://stackoverflow.com"); 
    } else { 
     window.location.replace("http://stackoverflow.com"); 
    } 
Смежные вопросы