【发布时间】:2021-05-22 01:21:30
【问题描述】:
我在我的网站上有一个预订表格,点击它会在新窗口中打开一个表格供用户填写以预订餐桌,当表格完成后,该窗口将关闭。
问题是,我希望只能通过主页上的此按钮(或主页上的任何按钮)访问表单。不过我想阻止的是,用户可以直接访问 /booking 而无需与主页交互。
我想要的行为是
如果用户点击主页上的按钮,它应该使用window.open命令打开表单(已经实现),用户可以填写表单没有问题。
如果用户只是输入 url www.DOMAIN.com/booking,它应该识别出他们没有从主页访问过这个页面,只需将他们重定向回www.DOMAIN.com。
这是我目前的尝试。
Booking.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Booking</title>
</head>
<body>
<div id="booking-form">
</div>
<script>
const myReferrer = document.referrer;
const hasReferrer = document.referrer != "";
const bookingFormArea = document.getElementById('booking-form')
if(hasReferrer) {
bookingFormArea.innerHTML=`<div id="rd-widget-frame" style="max-width: 600px; margin: auto;"></div>` // LOAD BOOKING FORM
} else {
bookingFormArea.innerHTML=`window.location.href = 'www.DOMAIN.com';` //Re-direct User to homepage
}
</script>
</body>
</html>
更新:经过进一步测试,似乎通过“onClick”方法使用按钮链接到“/booking”并使用“window.open”,document.referrer 仍然空白,是这样吗行为正确吗?
【问题讨论】:
-
请注意,没有标准规定必须填充
document.referrer。如果您想知道用户是否访问了您的网站,请使用 cookie 或 WebStorage 或window.name或任何其他跟踪用户的方式。
标签: javascript html