window.location.pathname
是你搜索的东西。
我建议你阅读window.location的 MDN 描述。就像 MDN 中的其他所有内容一样,这也非常简单且信息丰富。
如果您知道 URL 末尾有不必要的 index.html 部分,您可以:
var path = window.location.pathname.split('/');
path.pop();
path.join('/');
或者你可以切片它(因为它通常更快):
path.slice(0,path.lastIndexOf('/')+1)
编辑:
看到您的新问题,我可以说仅通过当前 URL 无法始终如一地安全地完成您想要的工作。
您需要该http://localhost/myweb/
部分,它是您的应用程序的 URL 根。在 javascript 中,您可以获取 url 的协议和域。在您的实时站点上,这 2 个匹配,但如果您的应用程序位于子文件夹myweb
中(如本地主机上的文件夹),这将失败。
您需要以某种方式识别应用程序 URL(应用程序的 URL 根)。
问题在于,仅通过检查 URL,javascript 无法判断您的应用程序所在的位置。
假设您将站点部署到:http://localhost/myweb/site1/
您将拥有以下网址:http://localhost/myweb/site1/cart/index.php
Javascript 可以用斜杠 ( ) 分割你的 URL,/
但它现在无法知道它应该选择多少个子文件夹。例如,应用程序根目录上方的 URL 可以是以下任何一种:http://localhost/
, http://localhost/myweb/
, http://localhost/myweb/site1/
, http://localhost/myweb/site1/cart/
.
通过另一种方法(我首先建议),您可以删除 URL 的末尾(在您的情况下是cart/index.php
部分)。这仅在您的 URL 结构非常严格的情况下才有效,因此执行此脚本的所有页面都位于一个子文件夹中。
因此它将在以下 URL:http://localhost/myweb/site1/gallery/old/index.php
或类似的 URL 上中断。
您最好的选择是将其设置为一个单独的文件中的“配置变量”,您可以在它部署到的每个位置上对其进行编辑。
$appRoot = "http://localhost/myweb/"
可以作为生成 javascript的 PHP 变量 ( )。
或者更简单地说是一个 javascript 变量 ( var appRoot = 'http://localhost/myweb/'
)。制作一个单独的 js 文件,将其命名为config.js
,将上面的行添加到其中并在其他 javascripts 之前引用它。