Как я могу определить, находится ли пользователь на index.html? - PullRequest
3 голосов
/ 24 января 2012

Я использую document.URL, чтобы определить, находится ли пользователь в index.html:

if(document.URL.indexOf("index") >-1) return true;

Но если пользователь вводит "mydomain.com" или "mydomain.com/", то тест возвращает false.

Я мог бы попробовать:

if(document.URL ==="http://myDomain.com") return true;

Но я хочу использовать этот код в разных доменах. Есть предложения?

Ответы [ 4 ]

10 голосов
/ 24 января 2012

Существует так много перестановок URL, что может означать, что пользователь включен index.html.Вместо этого вы не могли бы поместить переменную в этот файл:

<script type="text/javascript">
    on_index = true;
</script>

Просто проверьте, не является ли on_index неопределенным и имеет значение true.Это будет точно в 100% случаев.

5 голосов
/ 24 января 2012

javascript Местоположение объекта имеет много полезных свойств, в частности, вы можете просмотреть location.pathname.

По сути, вы находитесь на странице «index», если путь 1) пуст 2) равен косой черте / 3) начинается с index или /index.

 var p = window.location.pathname;

 if (p.length === 0 || p === "/" || p.match(/^\/?index/))
     alert ("on the index page!")

См. Javascript .pathname IE Причуды? для обсуждения ведущих проблем косой черты.

2 голосов
/ 24 января 2012

Нет прямой ссылки между файлами и URL. Кроме того, index.html не обязательно должен находиться в корне сайта, а страница по умолчанию не обязательно должна быть index.html.

Если вам нужно общее решение, вам, вероятно, не повезло. Если вы хотите найти решение для вашего конкретного случая, вы можете просто предоставить эту информацию на самой странице, например, определение идентификатора или имени класса:

<body class="index">

... или переменная JavaScript:

// Pick one
var page = 'index';
var isIndex = true;

Если все, что вам нужно, это простая манипуляция строкой с текущим местоположением, захватите свойство pathname объекта window.location:

// Untested
if( window.location.pathname=="/" || window.location.pathname=="/index.html" ){
}
2 голосов
/ 24 января 2012

Вы можете использовать

if (document.location.pathname === '/' || 
    document.location.pathname.indexOf('index') >-1 ) {
   return true;
 }

Если у вас есть доступ к реальной странице, а не только к сценарию, вы должны следовать @ 1005 * совету Бена Эверарда.

Просто убедитесь, что вы включили фрагмент, который он предлагает, перед вашим сценарием.

...