0

这是我的第一篇文章。我对 javascript 相当陌生,并试图使用以下函数来获取文档名称(由页面上的元素 id 模仿)以在以后的函数中使用。在测试站点上,它运行良好。例如,如果文件是http://testserver/options/example.html它返回“示例”

一个现场站点,它总是返回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 回答