在浏览网站时,例如www.example.com,用户可能会输入一些子域名www.sub.example.com
但基本webdomain保持不变。
在我的firefox扩展程序中,我需要开发一个“session”,它会保持活动状态,直到用户保持在同一个域中。
一个简单的解决方案是首先从网址中提取域名。然后用“。”分割字符串。作为代币。因此,我们得到第二种情况的子和示例,而第二种情况的示例。然后我可以比较两者。如果有任何相同,我推断域是相同的。
虽然这可能有用,但这看起来更像是黑客攻击,可能容易出现误报/否定。
针对同样的问题,是否有更有效/更清洁的解决方案?
信息:我正在使用GWT构建扩展程序
答案 0 :(得分:2)
您应该使用nsIEffectiveTLDService,它会正确处理sub.example.co.uk
之类的内容。您可以将nsIURI
实例传递给nsIEffectiveTLDService.getBaseDomain()
,aAdditionalParts
参数应为零。对于http://sub.example.co.uk/foo
,您将获得example.co.uk
- 实际的“域名”部分。然后,您只需比较两个网址的域名。