怎么用documen获取script标签中的内容
时间: 2024-03-11 18:49:01 浏览: 209
使用Document对象的`getElementsByTagName()`方法可以获取HTML文档中所有指定标签名的元素,然后使用`innerHTML`属性获取标签中的内容。具体实现代码如下:
```javascript
// 获取所有的script标签
var scripts = document.getElementsByTagName('script');
// 遍历script标签
for (var i = 0; i < scripts.length; i++) {
// 获取当前script标签的内容
var scriptContent = scripts[i].innerHTML;
console.log(scriptContent);
}
```
需要注意的是,如果script标签中存在外部脚本,则使用上述方法获取到的是空字符串。
相关问题
怎么用documen获取script标签中Hub.config.set的内容
可以使用`getElementsByTagName()`方法获取所有的`script`标签,然后遍历这些标签,使用`indexOf()`方法检查每个标签的文本内容是否包含`Hub.config.set`,如果包含再使用正则表达式提取出需要的内容。具体实现代码如下:
```javascript
// 获取所有的script标签
var scripts = document.getElementsByTagName('script');
// 遍历script标签
for (var i = 0; i < scripts.length; i++) {
// 获取当前script标签的内容
var scriptContent = scripts[i].innerHTML;
// 检查script标签的内容是否包含Hub.config.set
if (scriptContent.indexOf('Hub.config.set') !== -1) {
// 使用正则表达式提取出需要的内容
var regex = /Hub.config.set\(["'](.+?)["'],\s*(.+?)\)/g;
var match = regex.exec(scriptContent);
while (match !== null) {
var key = match[1];
var value = match[2];
console.log(key + ': ' + value);
match = regex.exec(scriptContent);
}
}
}
```
需要注意的是,这种方式只适用于`Hub.config.set`方法的参数是字符串类型的情况,如果参数是其他类型,例如数字、布尔值、对象等,则需要根据具体情况进行调整。
Java怎么用documen获取script标签中Hub.config.set的内容
Java中可以使用第三方库jsoup来解析HTML文档,然后使用选择器语法获取所有的`script`标签,遍历这些标签,使用正则表达式提取出需要的内容。具体实现代码如下:
```java
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String html = "<html><body><script>\n" +
"Hub.config.set('key1', 'value1');\n" +
"Hub.config.set('key2', 'value2');\n" +
"Hub.config.set('key3', 'value3');\n" +
"</script></body></html>";
// 解析HTML文档
Document doc = Jsoup.parse(html);
// 获取所有的script标签
Elements scripts = doc.select("script");
// 遍历script标签
for (Element script : scripts) {
// 获取当前script标签的内容
String scriptContent = script.html();
// 检查script标签的内容是否包含Hub.config.set
if (scriptContent.contains("Hub.config.set")) {
// 使用正则表达式提取出需要的内容
Pattern pattern = Pattern.compile("Hub\\.config\\.set\\('(.+?)',\\s*'(.+?)'\\)");
Matcher matcher = pattern.matcher(scriptContent);
while (matcher.find()) {
String key = matcher.group(1);
String value = matcher.group(2);
System.out.println(key + ": " + value);
}
}
}
}
}
```
需要注意的是,这里使用了反斜杠对正则表达式的特殊字符进行了转义,例如`.`、`(`、`)`等。
阅读全文