You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何获取网页完整HTML源代码?JS控制台执行程序实现问询

获取网页完整HTML源代码的浏览器控制台JS方法

嘿,这个需求其实挺常见的,在浏览器控制台里有好几种简单直接的方式能拿到页面的完整HTML源码,我给你梳理几个最实用的:

  • 方法一:直接取<html>元素的完整代码
    浏览器里的document.documentElement就是整个页面的<html>根元素,它的outerHTML属性会返回包含元素本身在内的所有HTML内容,正好就是你要的完整源码。
    直接在控制台输入这段代码就行:

    console.log(document.documentElement.outerHTML);
    

    要是想直接复制到剪贴板省得手动选,用浏览器内置的copy()方法更方便:

    copy(document.documentElement.outerHTML);
    
  • 方法二:换个方式选<html>元素
    和上面的效果完全一样,只是用querySelector来获取根元素,写法稍微不同而已:

    console.log(document.querySelector('html').outerHTML);
    
  • 方法三:更标准的序列化方式
    如果遇到一些特殊的DOM节点(比如SVG之类的),用XMLSerializer来序列化会更严谨,输出的代码更符合标准:

    const serializer = new XMLSerializer();
    const fullPageHtml = serializer.serializeToString(document);
    console.log(fullPageHtml);
    // 同样支持一键复制
    copy(fullPageHtml);
    

小补充:动态DOM vs 原始源码

上面前三种方法拿到的是当前页面DOM的实时状态——也就是说如果页面有JS动态修改过内容(比如加载后新增了元素、改了属性),返回的是修改后的代码。如果想要服务器最初返回的原始源码,除了右键选「查看页面源代码」,也可以用fetch重新请求一次页面:

fetch(window.location.href)
  .then(response => response.text())
  .then(rawHtml => {
    console.log(rawHtml);
    copy(rawHtml);
  });

这个方法会绕过当前的DOM,直接拿到服务器发过来的原始HTML文件。

内容的提问来源于stack exchange,提问作者Odog8

火山引擎 最新活动