document.referrer是document对象的只读属性,返回上一页面的完整url;若直接访问则为空字符串,使用前需校验非空和有效性,且不可用于关键权限控制。

在 JavaScript 中,BOM(Browser Object Model)里获取页面来源引用地址,主要靠 document.referrer 属性,它返回的是当前页面的上一个页面的完整 URL(即用户从哪个页面跳转过来的)。
什么是 document.referrer?
它是 document 对象的一个只读属性,值为字符串。如果用户是直接输入网址、从书签打开、或通过新标签页直接访问,这个值通常为空字符串("");如果是从其他网页点击链接跳转而来,就会包含那个来源页面的 URL。
如何安全获取并使用 referrer
由于 referrer 可能为空或被浏览器隐私策略(如 Referrer Policy)截断,使用前建议做判断:
Java Maven 项目审查工作流的通用输入处理。当 Java Maven 项目以 ZIP压缩包或 GitLab 仓库 URL 形式提供且需要...时使用。
- 检查是否非空:
if (document.referrer) - 避免直接解析导致报错:先用
URL构造函数校验再处理 - 注意跨域限制:HTTPS 页面跳转到 HTTP 页面时,referrer 可能被清空(出于安全,默认策略常为
strict-origin-when-cross-origin)
常见用途与简单示例
比如统计来源渠道、做来源白名单跳转校验、或优化落地页文案:
const referrer = document.referrer;
if (referrer && referrer.includes('google.com')) {
console.log('来自 Google 搜索');
} else if (referrer.includes('baidu.com')) {
console.log('来自百度');
}
注意:不能依赖 referrer 做关键权限控制,因为它可被伪造或缺失,仅适合辅助性逻辑。
补充说明:没有“BOM 方法”直接获取 referrer
referrrer 是 document(DOM)对象的属性,不是 window 或 navigator 等典型 BOM 对象提供的方法。虽然常被归入广义 BOM 使用场景,但技术上属于 DOM 规范。别误以为有类似 window.getReferrer() 这样的 API —— 并不存在。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










