Joomla 包含导致显示空白页面的 CSS

Joomla 包含导致显示空白页面的 CSS

每当我尝试加载登录页面时<domain>/index.php?option=com_users&view=login,我只会看到一个空白页面。当我查看交付的网站源代码时,html { display:none }头部的 CSS 语句导致整个页面无法显示:

<head>

    <base href="<domain>/index.php" />
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <meta name="generator" content="Joomla! - Open Source Content Management" />
  <title>xxxxxxxxx</title>
  <style type="text/css">
html { display:none }
  </style>
...

所有其他页面均显示正常,没有任何问题。除此之外,它还与一个特殊模板相关:只要我激活其中一个标准模板,登录页面就可以正常工作。

我已经可以将其追踪到jdoc:include type="head"代码部分,ìndex.php并试图找出相应的代码head.php来自哪里,但由于我没有任何 PHP 经验,所以我只能呆在这里。

有人能提示下一步该怎么做,或者(更好的是)给出解释或解决办法吗?

如果这很重要,我会使用 Joomla 2.5。

答案1

我是 PHP 开发人员。这可能是由于 libraries\joomla\html\html 下的 behavior.php 文件中的某些代码所致。

如果您的登录页面位于框架内,它似乎首先隐藏该页面,然后在浏览器完成页面(及其资产)加载后使用 JavaScript 显示该页面,并将网站脱离框架。

您的浏览器中是否禁用了 JavaScript?这可能会导致问题。

/**
 * Break us out of any containing iframes
 *
 * @param   string  $location  Location to display in
 *
 * @return  void
 *
 * @since   11.1
 */
public static function noframes($location = 'top.location.href')
{
    // Only load once
    if (isset(self::$loaded[__METHOD__]))
    {
        return;
    }

    // Include MooTools framework
    self::framework();

    $js = "window.addEvent('domready', function () {if (top == self) {document.documentElement.style.display = 'block'; }" .
        " else {top.location = self.location; }});";
    $document = JFactory::getDocument();
    $document->addStyleDeclaration('html { display:none }');
    $document->addScriptDeclaration($js);

    JResponse::setHeader('X-Frames-Options', 'SAME-ORIGIN');

    self::$loaded[__METHOD__] = true;
}

相关内容