4

目前我正在尝试解决有关跟踪的问题。

在我们的网站上,用户应该能够决定他是否被跟踪以及共享哪种信息。

我们也有不同的第三方跟踪机制,也可以关闭。(如果用户愿意)

我用本地存储 + cookie 解决了这个问题。如果用户决定停用我们的某个跟踪,则负责此类跟踪的代码将不会通过请求的文件传输。

此外,我确实尊重 的设置window.Navigator.doNotTrack,如果出现 beeing 1,则会在弹出的小吃店中解决并请求许可。

我找到的关于这个主题的所有信息都在这里

我想知道的是如何请求例外以及如何查看该网站是否被接受。

我尝试了此处描述的内容,但似乎不起作用。

Navigator.trackingExceptionExists // will be undefined
4

2 回答 2

2

你可以试试

navigator.confirmSiteSpecificTrackingException

检查以下链接以获取完整参考

https://msdn.microsoft.com/en-us/library/dn265021(v=vs.85).aspx

于 2017-11-21T12:28:37.000 回答
1

DNT头域是一种在 HTTP 请求中表达用户跟踪偏好的机制。一个有效的请求中最多可以有一个DNT头域。

DNT 字段名称 = "DNT"

DNT 字段值 = ("0" / "1") *DNT 扩展名

  • 如果未启用用户的跟踪首选项,用户代理不得生成DNT头字段。
  • 如果启用了用户的跟踪首选项,用户代理必须生成一个 DNT 头字段,其字段值以数字字符“1”开头,他们的首选项是DNT:1,并且没有为请求目标授予例外。
  • 如果启用了用户的跟踪首选项并且他们的首选项是DNT:0,或者如果已为请求目标授予异常,则用户代理必须生成带有以数字字符“0”开头的字段值的 DNT 标头字段.
  • 代理不得生成 DNT头字段,除非它已被发出请求的用户专门安装或配置为这样做,并且像用户代理一样遵守上述要求。

以下是一些请求站点特定例外的方法:

  1. 无效 storeSiteSpecificTrackingException(StoreSiteSpecificExceptionPropertyBag 属性)

    这由页面调用以存储特定于站点的跟踪异常。该storeSiteSpecificTrackingException方法采用StoreSiteSpecificExceptionPropertyBag类型的字典参数,该参数允许提供可选信息。

  2. DOM字符串?领域

    这是例外适用的cookie 域。

  3. DOM字符串?站点名称

    顶级来源名称的用户可读字符串。

  4. DOM字符串?解释字符串

    对请求的简短说明

  5. DOM字符串?详细URI

    可以找到有关此请求的更多信息的位置。

  6. DOM字符串?过期

    日期和时间,按照cookie 过期属性的描述进行编码,指示记住的授权的最大生命周期。

  7. 长的?最大年龄

    一个正数秒数,表示记住授权的最长生命周期。

  8. 序列 arrayOfDomainStrings

    一个 JavaScript 字符串数组。如果请求不包括arrayOfDomainStrings,则此请求针对站点范围的异常。否则,arrayOfDomainStrings中的每个字符串都指定一个目标。调用时,storeSiteSpecificTrackingException 必须立即返回。如果提供了列表arrayOfDomainStrings,用户代理可以选择存储站点范围的异常。如果这样做,它必须在返回值中指出这一点。

那么,作为第一个问题的答案,如何请求例外?,我建议你这样做:

Navigator.storeSiteSpecificTrackingException

如果您想删除权限授予,请执行以下操作:

Navigator.removeSiteSpecificTrackingException

没有回调removeSiteSpecificTrackingException。进行调用后,可以确保给定顶级 origin 没有特定于站点或站点范围的异常

作为第二个问题的答案,如何查看网站上的例外偏好是否被接受?,confirmSiteSpecificTrackingException是用于相同的方法:

boolean confirmSiteSpecificTrackingException (ConfirmSiteSpecificExceptionPropertyBag properties)

此方法由页面调用以确认特定于站点的跟踪异常。

所以你所要做的就是:

Navigator.confirmSiteSpecificTrackingException
于 2017-11-22T07:43:18.147 回答