2012-01-24 31 views
3

私は、ユーザーがindex.htmlの上にあるかどうかを検出するために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; 

しかし、私は別のドメインにこのコードを使用します。助言がありますか?

+1

これはjavascriptで行う必要がありますか?それはPHPで行うことができますか? – bowlerae

+0

PHPはオンラインではありませんか?このページはJavascriptのゲームです。ユーザーにディスクに保存するオプションが必要です。したがって、ページの検出がすべてJavascriptであれば、それはボーナスです。 –

+1

よろしくお願いします。それはあなたにもっと多くの情報を提供する必要があるという例です:-P – bowlerae

答えて

10

というユーザーがindex.htmlであることを意味する多くの順列があります。代わりに、そのファイル内のVARを置くことができませんでした:

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

on_indexは未定義ではなく、真の場合にだけ確認してください。それは正確な100%の時間です。

+0

ありがとうございました。正確さは重要なので、私はこの方法を使用します。 –

+0

文章はコンマで終わらないようにしてください。 –

5

javascript Location objectには多くの有用な特性があり、特にlocation.pathnameを調べることができます。

基本的に、あなたはパス名がある場合は、「インデックス」ページにしている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 quirk?を参照してください。

2

あなたは実際のページへのアクセスだけでなく、スクリプトを持っているなら、あなたは@Ben Everard'sアドバイスに従うべき

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

を使用することができます。

ちょうどあなたがあなたのスクリプトの前に彼が提案しているスニペットを含めることを確認してください。..

2

ファイルとURLの間の直接リンクはありません。さらに、index.htmlはサイトのルートにある必要はなく、デフォルトページはindex.htmlである必要はありません。

一般的なソリューションが必要な場合は、おそらく運が悪いです。特定のケースに対応するソリューションが必要な場合は、ページ自体から情報を提供するだけで済みます。

<body class="index"> 

...またはJavaScript変数:IDまたはクラス名を定義したいすべてが現在の場所でいくつかの単純な文字列操作の場合

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

を、window.locationオブジェクトのpathnameプロパティをつかみます:

// Untested 
if(window.location.pathname=="/" || window.location.pathname=="/index.html"){ 
} 
+0

クラスを使うのも良い方法です。 –

関連する問題