我在 Ubuntu 20.04 上运行 apache 网络服务器。
我有一个domain.com
将客户引导至 的index.html
网站。网站上有一个按钮,单击该按钮时会打开日历弹出窗口小部件。我希望访问 的人能够domain.com/schedule
进入索引页,就像他们单击了该按钮一样。
我怎样才能简单地做到这一点?
答案1
您肯定需要在客户端触发弹出窗口。以下是一个简单的示例,您可以轻松尝试并调整(并保护)以满足您的需求:
<html>
<head>
<script type="text/javascript">
function isScheduleRequested() {
if(window.location.href.includes('/schedule')) {
document.getElementById('button').click();
}
}
</script>
</head>
<body onload='isScheduleRequested();'>
<button type="button" name="button" id="button" onclick="alert('Opening calendar');">Open calendar</button>
</body>
</html>
一般来说,它的作用是检查当前页面的 URL 是否包含“/schedule' 子字符串”(任何地方,不一定在末尾,甚至不只包含一次),如果包含,则调用按钮的click
事件。
该onload='isScheduleRequested();
位只是为了确保在主体加载后(并且按钮元素存在)执行 javascript 脚本。
您甚至可以在计算机上尝试此操作。将此代码保存为“index.html”并使用浏览器打开它。除非您单击按钮,否则不会发生任何事情。但是,如果您将其附加?q=/schedule
到 URI,则会触发按钮的“单击”事件。(在此示例中,我们需要将字符串/schedule
作为 GET 参数的一部分传递,因为没有域名、服务器或任何花哨的设置。)
答案2
在 Apache 服务器上你可以创建重写规则用于从另一个路径渲染相同的 index.html,但显示弹出窗口小部件是您必须在应用程序端解决的问题(例如,JavaScript 可以使用Web API URL.路径名检测访问 URL domain.com/schedule
)。当您的应用程序检测到用户访问domain.com/schedule
(基于路径名)时,它可以调用弹出窗口小部件打开操作。