【发布时间】:2021-12-30 15:51:25
【问题描述】:
我目前有以下代码(PHP)
<?php
require_once __DIR__.'/includes/Connect.php';
require_once __DIR__.'/includes/Nojs.php';
require_once __DIR__.'/includes/Main.php';
require_once __DIR__.'/includes/footer.php';
?>
我希望 Main.php 仅在 JavaScript 启用时加载,Nojs.php 仅在 JavaScript 被禁用时加载。
用标签包围Nojs.php 什么都不做(见下面的代码)
<?php
require_once __DIR__.'/includes/Connect.php';
?>
<noscript>
<?php
require_once __DIR__.'/includes/Nojs.php';
?>
</noscript>
<?php
require_once __DIR__.'/includes/Main.php';
require_once __DIR__.'/includes/footer.php';
?>
由于我知道 PHP 无法访问浏览器,因为它是在服务器端完成的,是否可以尝试使用 HTML(就像我尝试过的那样)或其他 JavaScript 来让它工作? 提前致谢。
编辑:
为nojs.php 创建一个新文件并使用元刷新工作,但有明显的延迟。该页面开始加载原始 URL,然后重定向到另一个。访问者可以很容易地取消页面加载过程并在重定向之前停止页面加载。他们将有一个部分加载的页面,但他们真正需要的所有内容都在那里。有没有办法强制立即重定向(是的,根据下面的答案,“内容”设置为“0”)?
【问题讨论】:
-
这是否解决了您的情况:stackoverflow.com/questions/12361321/…
-
正如您所说的“PHP 无法访问浏览器,因为它是在服务器端完成的”——
<noscript>标签在 PHP 完成其服务器端执行后由浏览器处理。 也许可以将<noscript>标记放在Nojs.php文件本身中,并且始终需要该文件...有点取决于 Nojs.php 文件中的内容。
标签: javascript php html require