首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >清除location.pathname以加载文件并选择具有href属性的元素

问清除location.pathname以加载文件并选择具有href属性的元素
EN

Stack Overflow用户
提问于 2013-10-15 18:36:19
回答 1查看 185关注 0票数 0

我有一个脚本,本质上我试图使用javascript/jquery查找.php文件的位置(使用location.pathname)。所以,我的问题基本上是,如果用户输入一些奇怪的东西,比如:

url.com/或url.com////或url.com////index.php////或url.com////index.php.////,然后我需要一种处理这个问题的方法,这样我就可以获得/index.php,这样我就可以选择该文件并从其中加载一些内容(使用ajax),以及选择一个具有href = "/index.php"的元素,这样我就可以使它成为一个活动链接。

还有一个额外的问题是这样的:

url.com/projects/index.php,url.com////projects//index.php,我希望有一个/projects/index.php的输出,以便再次正确地选择文件。

有什么标准的方法吗?我想避免使用某种regex或string替换方法,因为我不确定它是否能够处理所有的情况,尽管如果正确的方法是使用regex或string替换方法,那么我将继续并实现它。浏览器使用解析器来确定要加载的文件,所以如果有类似的解决方案(可能是内置的),那就太好了。我试着搜索jquery解析器或清理器,但实际上我不确定我应该搜索的词是什么,所以我的搜索出现了不足。

编辑:作为一些背景,我基本上实现了:http://css-tricks.com/rethinking-dynamic-page-replacing-content/,但是我需要一种方法来调整它,这样它也可以在子目录中找到文件。

EDIT2:,这里是我的意思的一个例子:

​

​

EDIT3:,这里是我使用的ajax调用,它在popstate上触发:

代码语言:javascript
复制
var file = location.pathname;
$("#content").load(file + " #content", function() {
    $("#menu ul a").removeClass("current");
    $("#menu ul a[href="+file+"]").addClass("current");
});

当我对奇怪的浏览器条目执行此操作时,load和href显然会失败,因为在我的网站中,href属性设置为href = "/index.php"。load函数对于奇怪的输入也会失败,即使可以加载页面。

EN

回答 1

Stack Overflow用户

发布于 2013-10-15 20:34:50

用一个正斜杠替换多个正斜杠,必要时删除域名。示例:

代码语言:javascript
复制
$(document).ready(function() {
    var userStr = 'url.com////projects//index.php';
    userStr = userStr.replace(/\/{2,}/g, '/').replace(/url.com/, '');
    // userStr = /projects/index.php
});

这显然不能适用于用户可能提供的每个URL组合,但我怀疑您是否会找到一个正则表达式来处理所有的可能性。如果用户向您发送“url.com/index.php./”,则给他们404作为回报。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19388634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档