前言
今天写页面的时候用到referre属性,想要在跳转到下一页面的时候能够获得前一页面的URL,结果在ios中打开的页面中没作用。经过查询发现应该是在ios15以上的版本此属性会被设置为空字符串。
一、为什么在ios中没作用?
在 iOS 设备上,document.referrer 属性的行为与其他平台上的浏览器有所不同。在 iOS 的 Safari 浏览器中,document.referrer 属性通常会被设置为空字符串,以保护用户的隐私。
二、由于 iOS Safari 的限制,无法直接获取引用页面的 URL。如果你需要在 iOS 设备上获取引用页面的 URL,可以考虑以下替代方法:
1.使用 URL 参数
在引用页面的链接中,可以通过 URL 参数的方式将引用页面的信息传递到目标页面。例如,可以在链接中添加一个参数 referrer,并将引用页面的 URL 作为参数值。然后,在目标页面中使用 JavaScript 获取该参数值来获取引用页面的 URL。
引用页面链接示例:
<a href="target.html?referrer=https://example.com">目标页面</a>
目标页面 JavaScript 示例:
var urlParams = new URLSearchParams(window.location.search);
var referrer = urlParams.get('referrer');
2.使用服务器端处理
如果你有服务器端的支持,可以在服务器端处理并将引用页面的 URL 传递给目标页面。服务器端可以将引用页面的 URL 添加到目标页面的内容中,或者通过 AJAX 请求将其发送到目标页面。
总结
这些方法可以绕过 iOS Safari 上的 document.referrer 限制,从而获取引用页面的 URL。请根据你的具体需求选择适合的方法,并根据需要进行相应的实现和调整。