Javascript函数在测试站点和实时站点上返回不同的结果

时间:2013-01-28 16:10:43

标签: javascript

这是我的第一篇文章。 我是一个相当新的JavaScript,并试图使用以下函数来获取文档名称(由页面上的元素id模仿),以便在以后的函数中使用。在测试网站上,它完美无缺。例如,如果文件是http://testserver/options/example.html,则返回'example'

一个直播网站,它总是返回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>

1 个答案:

答案 0 :(得分:1)

尝试修改此行:

您的测试网站没有全部“。”像现场网站一样(即www。或.com)。通过使用lastIndexOf,您可以获得“。”的最后一个实例。在扩展名之前的网址中。

从以下位置更改:

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

要:

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

有关lastIndexOf的更多信息,请访问此链接:

lastIndexOf() on MDN

希望这有帮助。