我创建了自己的扩展。可以从网站的不同组件和部分访问此扩展程序。
我遇到的问题是可能有许多不同的 URL 链接到这个扩展。我有一个“取消”按钮,但我不知道如何让这个按钮链接到以前的 URL。
想知道 joomla 中是否有像 getPreviousURL 这样的内置功能?找不到任何东西。
编辑:我应该说我仍然希望能够运行我的 cancel() 方法。例如 index.php?option=com_mycomp&task=mycomp.cancel。然后,cancel() 方法将重定向到上一页。
我创建了自己的扩展。可以从网站的不同组件和部分访问此扩展程序。
我遇到的问题是可能有许多不同的 URL 链接到这个扩展。我有一个“取消”按钮,但我不知道如何让这个按钮链接到以前的 URL。
想知道 joomla 中是否有像 getPreviousURL 这样的内置功能?找不到任何东西。
编辑:我应该说我仍然希望能够运行我的 cancel() 方法。例如 index.php?option=com_mycomp&task=mycomp.cancel。然后,cancel() 方法将重定向到上一页。
如果我理解你的问题是正确的,这肯定会帮助你。Joomla 不支持类似的东西,但 Javascript 支持。
JS
<script>
function goBack()
{
window.history.back()
}
</script>
HTML
<input type="button" value="Cancel" onclick="goBack()" />
back() 方法加载历史列表中的前一个 URL。这与单击后退按钮或 history.go(-1) 相同。
根据需要更新了答案。
PHP
如果 JavaScript 不可行,您可以使用 HTTP_REFERER,对其进行清理,然后通过 PHP 将其回显。
<?php
$url = htmlspecialchars($_SERVER['HTTP_REFERER']);
$this->setRedirect($url);
?>
这将不起作用,如果
- 在浏览器地址栏中输入站点 URL。
- 通过浏览器维护的书签访问该站点。
- 作为窗口/选项卡中的第一页访问该站点。
- 安装了安全软件(防病毒/防火墙/等),从所有请求中剥离引荐来源。
- 以编程方式(例如 curl)访问该站点,而无需设置引荐来源标头(搜索机器人!)。
如果您遇到任何问题,请告诉我。
更新答案 - Joomla 方法
$url = JFactory::getURI();
$request_url = $url->toString();
我已经这样做了:
安装 Joomla 扩展“jumi”@ url http://extensions.joomla.org/extensions/extension/core-enhancements/coding-a-scripts-integration/jumi
创建一个 html 文件(例如:back.html)并编写以下代码:
<script>
function goBack()
{
window.history.back()
}
</script>
<input type="button" value="Back" onclick="goBack()" />
将其保存到 Joomla 根目录中。
在 Joomla 中创建一个自定义模块并编写语法:
{jumi [back.html]}
我希望它会奏效。谢谢