描述
tldjs
是一个能够获取域名信息的 npm 包,它能够识别出一个网址的父域名、次级域名、顶级域名,以及该域名所属的国家或地区。
该 npm 包可以极大地方便前端开发中对于 URL 相关的操作。下面我们将对该 npm 包进行详细的使用教程,以及演示其在前端开发中的实际应用。
安装
安装 tldjs
最简单的方法是通过 npm 安装,打开终端并输入以下命令:
npm install tldjs
安装完成后就可以在编写项目时使用 tldjs
进行相关操作了。
使用
引入及初始化
const tldjs = require('tldjs');
注意:使用 tldjs 的相关函数,需要首先提供待识别的并包含顶级域名的 URL,格式为:
const url = 'http://www.example.com/path?foo=bar';
获取顶级域名(Top-level Domain,TLD)信息
获取顶级域名信息,使用 tldjs.getTLD()
方法。
const domain = tldjs.getDomain(url); // 'example.com' const tld = tldjs.getTLD(url); // 'com'
该方法返回的是一个字符串,即对应 URL 的顶级域名。
获取次级域名(Second-level Domain,SLD)和父域名(Parent Domain)
获取次级域名和父域名信息,使用 tldjs.getSLD()
和 tldjs.getDomain()
方法。
const fullDomain = tldjs.getDomain(url); // 'example.com' const sld = tldjs.getSLD(fullDomain); // 'example' const parent = tldjs.getDomain(`www.${fullDomain}`); // 'www.example.com'
获取国家/地区(country)信息
获取国家/地区的信息,使用 tldjs.getDomain()
方法。
const domain = tldjs.getDomain(url); // 'example.com' const country = tldjs.getDomainData(domain).country; // 'US'
以上代码会输出域名 example.com
所属的国家或地区的二字母缩写(例如 US
表示美国)
应用
防止跨站脚本攻击(Cross-Site Scripting,XSS)
在前端开发中,防止 XSS 攻击是一项重要的任务。如果出现 XSS 攻击,则可能会导致网站安全风险。这时候,我们就可以使用 tldjs
包来避免此情况的发生。
const domain = `http://${tldjs.getDomain(url)}`; const script = `<script src="${domain}/evil.js"></script>`; const safeScript = `<script src="${tldjs.makeUrlSafe(script, domain)}"></script>`;
在以上代码中,我们可以调用 tldjs 的 tldjs.makeUrlSafe()
方法,来在保证 URL 安全的情况下,生成一个安全的Javascript脚本。
统计分析
在做数据统计分析的时候,我们可能会需要分解域名,以便更加清晰地对不同的来源进行统计。
-- -------------------- ---- ------- ----- ------ - --------------------- ----- --- - --------------------- ----- ------- - ------------------------------------ -- ----------------- --------------------------- - ---- ------- ---- ---- -------- -------- ---展开代码
以上代码列举了如何在一个 analytics.track
函数中按照域名信息进行上报。通过这种方式,我们就可以清晰地看到来自不同国家/地区和各种网站平台的数据来源,从而更好地量化网站流量。
结论
npm tldjs
包非常方便在前端开发中使用,并且可以大大提升操作 URL 的效率。本篇文章对该 npm 包进行了详细的介绍,包括安装、引入及初始化、获取顶级域名、获取次级域名和父域名、获取国家/地区信息,以及在实际应用中的一些示例。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/70069