这是我的第一篇文章。
我是一个相当新的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>
答案 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的更多信息,请访问此链接:
希望这有帮助。