【发布时间】:2014-05-02 18:55:03
【问题描述】:
我有一个带有父页面 (index.php) 的网站,它将所有子页面加载到一个框架中并保持 URL 静态(因此,如果我在整个站点中导航,URL 将始终为 htps://localhost/myWebsite /)。
现在,当我直接转到子页面 (htps://localhost/myWebsite/childPage.php) 时,页面将加载没有样式,并且网站不会在 index.php 上。
所以我编写了一个解决方案,方法是将所有子页面重定向回 index.php 页面,并根据我通过 HTML5 传递的会话变量加载框架内容。一旦在 index.php 页面上,会话变量将被清除,一切都很好。
唯一的问题是我在一个外部 .JS 文件中硬编码一个用于条件检查的 URL,该文件包含我的重定向、设置/清除会话变量的过程。我的老板说他不想要任何硬编码,所以我想知道是否有办法获取 index.php 页面 URL 值,而不管您当前在哪个页面上?
我需要一个变量,该变量将始终保存值“htps://localhost/myWebsite/”(主 URL) 和一个始终保存值的变量:“htps://localhost/myWebsite/index.php”(主页)
var theURL = window.location.protocol
+ "//"
+ window.location.hostname
+ window.location.pathname;
var theURL = document.URL;
这两种方法都非常适合获取当前 URL 值,但会在不同页面上发生变化。我曾尝试使用 PHP 来获取服务器根目录,但它会将我导航到网站的分层视图。
有没有办法做到这一点?还是我应该找到完全不同的解决方案?
【问题讨论】:
-
这只是意味着你的
<link>标签中的uris和加载css的东西不正确。您可能想要<link href="/Website/css/styles.css" ... />之类的东西(注意前面的/),而不仅仅是<link href="css/styles.css" />。不需要 JS 之类的东西来解决这个问题。只需将正确的路径输出到您的 html 中即可。 -
网站的任何地方都没有 标签问题。全部是 Javascript 和 PHP,带有极少的 HTML 标记。您对“/”的看法是对的,谢谢,我没有注意到。但不幸的是,它并没有解决我的问题。
-
这似乎是一个 xy 问题。你到底想在这里完成什么?您说页面加载时没有样式,这意味着您正在使用 CSS 来设置页面样式。如果是这种情况,那么为了正确应用您的样式,您需要添加具有正确路径的 标签,如 Marc B 所说。
-
不会加载任何样式,因为子页面上没有样式。样式在父页面上处理,父页面加载子页面,然后加载样式。这已经奏效了。我只是在解释当您手动导航到所述页面时会发生什么。我说我已经编写了一个解决方案......唯一的问题是我必须硬编码一个值才能让它工作。我想弄清楚如何在不进行硬编码的情况下填充变量。抱歉不够具体。
标签: javascript php url