【问题标题】:How to get a URL value from another page JavaScript / PHP如何从另一个页面 JavaScript / PHP 获取 URL 值
【发布时间】: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


【解决方案1】:

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

var REDIRECT="/myWebsite/index.php"

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

请注意,这里我使用了 / 并省略了完整的网站 url。这样,如果您必须将站点从本地计算机移动到实时版本,您的重定向应该仍然有效。

这里:How to extract base URL from a string in JavaScript? 是一个问题,用于计算您在不同情况下可能需要的 url 的基本路径。

【讨论】:

    猜你喜欢
    • 2015-03-31
    • 1970-01-01
    • 1970-01-01
    • 2017-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-03
    • 1970-01-01
    相关资源
    最近更新 更多