0

これは私の最初の投稿です。私はJavaScriptにかなり慣れていないので、次の関数を使用してドキュメント名を取得しようとしていました(ページの要素IDによって模倣されています)。これは後の関数で使用されます。テストサイトでは、完全に機能します。たとえば、ファイルがhttp://testserver/options/example.html'example' を返す場合

ライブ サイトの 1 つ、常に返されますwww

<script  type="text/javascript">  

  $(document).ready(function() {
    var pageName = function() {
    //this gets the full url
    var url = document.location.href; 
    //this removes the anchor at the end, if there is one
    url = url.substring(0, (url.indexOf("#") == -1) ? url.length : url.indexOf("#")); 
    //this removes the query after the file name, if there is one
    url = url.substring(0, (url.indexOf("?") == -1) ? url.length : url.indexOf("?")); console.log(url);
    //this removes the file extension, if there is one 
    url = url.substring(0, (url.indexOf(".") == -1) ? url.length : url.indexOf(".")); console.log(url);
    //this removes everything before the last slash in the path
    url = url.substring(url.lastIndexOf("/") + 1, url.length); console.log(url);
    //return
    return url; console.log(url);
    }

}); 
</script>
4

1 に答える 1

1

この行を次のように変更してみてください。

テストサイトにすべての「。」があるわけではありません。ライブサイトと同じように(つまり、www。または.com)。lastIndexOfを使用すると、「。」の最後のインスタンスを取得できます。拡張子の前にあるURLで。

次の場所から変更します。

url = url.substring(0, (url.indexOf(".") == -1) ? url.length : url.indexOf("."));

に:

url = url.substring(0, (url.lastIndexOf(".") == -1) ? url.length : url.lastIndexOf("."));

lastIndexOfの詳細については、次のリンクにアクセスしてください。

MDNのlastIndexOf()

お役に立てれば。

于 2013-01-28T16:19:32.140 に答える