如何从另一个页面JavaScript / PHP获取URL值

时间:2014-05-02 18:55:04

标签: javascript php url

我有一个带有父页面的网站(index.php),它加载一个框架中的所有子页面并保持URL静态(因此,如果我在整个站点中导航,则URL将始终为htps:// localhost / myWebsite /).

现在,当我直接转到子页面(htps://localhost/myWebsite/childPage.php)时,页面将加载没有样式,网站将不会在index.php上。

所以我通过将所有子页面重定向回index.php页面并根据我通过HTML5传递的会话变量加载帧内容来编写解决方案。一旦在index.php页面上,会话变量将被清除,一切都很好。

唯一的问题是我在外部.JS文件内部对条件检查进行硬编码,该文件包含重定向,设置/清除会话变量的程序。我的老板说他不想要任何硬编码所以我想知道是否有办法获取index.php页面URL值,无论你当前在哪个页面?

我需要一个始终保持值的变量" htps:// localhost / myWebsite /" (主要网址) 以及一个始终保存值的变量:" htps://localhost/myWebsite/index.php" (主页)

var theURL = window.location.protocol 
             + "//" 
             + window.location.hostname 
             + window.location.pathname;


var theURL = document.URL;

这两项工作都很适合抓取当前的URL值,但在不同的页面上进行更改。我已经尝试使用PHP获取服务器根目录,但它导航我到网站的分层视图。

有办法做到这一点吗?或者我应该完全找到不同的解决方案吗?

1 个答案:

答案 0 :(得分:1)

index.php并没有什么特别之处可以让你通过javascript找到它。您可以使用php在您的网站根目录下搜索“index.php”,但这完全是多余的,因为您已经知道它在哪里。这里的“硬编码”并不代表你认为它意味着什么。通常,处理这种情况的方法是通过定义一个变量(在php中为常量)来保存值, e.g。

var REDIRECT="/myWebsite/index.php"

然后代替使用绝对重定向使用变量值。这样,如果将来需要更改,您可以在一个地方进行更改。这实际上是一个关于逻辑上可以做什么的问题,而不是你可以用javascript做什么。您无法重定向到,也无法计算任意目标的路径。所述路径必须以某种方式计算,在您的情况下,计算是微不足道的 - 您已经知道它是什么。

请注意,在这里,我使用了/并省略了完整的网站网址。这样,如果您必须将网站从本地计算机移动到实时版本,您的重定向仍然可以正常工作。

此处:How to extract base URL from a string in JavaScript?是一个解决计算您在其他情况下可能需要的网址的基本路径的问题。