📅  最后修改于: 2023-12-03 15:10:11.362000             🧑  作者: Mango
在Javascript中,我们可以通过DOM APIs来获取网页中的元素节点。而如果我们想要获取网页中的脚本元素,该如何操作呢?
一个简单的方法是使用getElementsByTagName
方法,该方法可以获取网页中所有指定标签名的元素节点,并返回一个NodeList对象。那么我们只需要找到所有的<script>
标签即可。
const scriptElements = document.getElementsByTagName('script');
但是,这样得到的scriptElements列表中还会包含一些没有src属性的脚本元素,这些脚本通常是用来定义一些变量或函数的。
如果我们想要区分内联脚本和外部脚本,可以通过检查元素的src
属性来进行区分。
const scripts = Array.from(document.getElementsByTagName('script'));
const inlineScripts = scripts.filter(script => !script.getAttribute('src'));
const externalScripts = scripts.filter(script => script.getAttribute('src'));
上面代码中我们使用了ES6中的Array.from方法将NodeList对象转换为一个数组,然后使用filter方法分别得到内联脚本和外部脚本的列表。
如果我们想要获取外部脚本的地址,可以直接获取<script>
元素的src
属性。
const externalScripts = Array.from(document.getElementsByTagName('script')).filter(script => script.getAttribute('src'));
const urls = externalScripts.map(script => script.src);
上面代码中我们使用了ES6中的map方法来将外部脚本元素列表转换成地址列表。
以上就是如何在Javascript中提取脚本元素的方法。我们可以使用getElementsByTagName
方法来获取所有的<script>
元素,然后通过检查元素的属性来区分内联脚本和外部脚本,并获取外部脚本的地址。