龙空技术网

深入挖掘:如何使用JavaScript抓取页面上的所有script标签

亦思姐姐的心路之旅 91

前言:

现在看官们对“php script标签”可能比较看重,你们都想要了解一些“php script标签”的相关资讯。那么小编同时在网上汇集了一些对于“php script标签””的相关文章,希望你们能喜欢,我们快快来了解一下吧!

js 获取页面中的script标签,这是网上的一段代码,经测试,可以获取。

var child = document.children;

var arr = [];//用来存放获取到的所有的标签

function fn(obj) {

for (var i = 0; i < obj.length; i++) {

if (obj[i].children) {//当当前元素还存在子元素的时候,递归

fn(obj[i].children);

}

arr.push(obj[i]); //遍历到的元素添加到arr这个数组中间

}

}

fn(child);

console.log(arr);//打印出最后获取到的结果

for (var i = (arr.length - 1); i >= 0; i--) {

console.log(arr[i]);

}

其实,这段JavaScript代码的主要目的是获取当前页面中的所有DOM元素,包括script标签,并将它们存储在一个数组中。然而,它实际上并没有针对script标签进行特殊处理,而是获取了document.children的所有直接子元素及其子孙元素。

如果要专门获取页面中的所有script标签,我们可以稍微修改一下这段代码:

var arr = [];

function collectScripts(obj) {

for (var i = 0; i < obj.length; i++) {

if (obj[i].nodeName === 'SCRIPT') { // 当前元素为script标签时

arr.push(obj[i]);

}

if (obj[i].children && obj[i].children.length > 0) {

collectScripts(obj[i].children); // 如果当前元素还存在子元素,则递归查找

}

}

}

// 遍历整个文档对象模型以查找script标签

collectScripts(document.getElementsByTagName('html')[0].children);

console.log(arr); // 打印出所有找到的script标签

for (var i = (arr.length - 1); i >= 0; i--) {

console.log(arr[i]);

}

看结果:

这里,我们首先通过document.getElementsByTagName('html')[0].children来获取HTML文档的顶层子元素,然后在遍历过程中检查每个元素是否是script标签,如果是则将其添加到数组arr中。同时保留了原有的递归结构,以便能够捕获嵌套在其他标签内的script标签。非常完美的实现了获取页面中的script标签。你也可以复制到浏览器的控制台试试。非常好用!

标签: #php script标签