0

在浏览网站时,比如 www.example.com,用户可能会输入一些子域,比如 www.sub.example.com

但基本网络域保持不变。

在我的 Firefox 扩展中,我需要开发一个“会话” ,它会保持活动状态,直到用户保持在同一个域上。

一个简单的解决方案是首先从 url 中提取域。然后用“.”分割字符串 作为令牌。因此,我们得到了第二种情况的 sub 和 example 以及第二种情况的 example。然后我可以比较两者。如果任何一个相等,我推断域是相同的。

尽管这可能有效,但这似乎更像是一种黑客行为,并且可能容易出现误报/误报。

是否有针对同一问题的更有效/更清洁的解决方案?

信息:我正在使用 GWT 构建扩展

4

1 回答 1

2

您应该使用nsIEffectiveTLDService,它会sub.example.co.uk正确处理类似的事情。您可以将nsIURI实例传递给nsIEffectiveTLDService.getBaseDomain()aAdditionalParts参数应为零。因为http://sub.example.co.uk/foo你会example.co.uk回来 - 实际的“域”部分。然后,您可以简单地比较两个 URL 的域名。

于 2012-06-05T18:47:27.363 回答