V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
E0
V2EX  ›  问与答

对于单页应用怎样用油猴脚本获取文本内容?

  •  
  •   E0 · 2022-04-30 20:03:25 +08:00 · 1658 次点击
    这是一个创建于 966 天前的主题,其中的信息可能已经有所发展或是发生改变。

    在浏览器控制台使用

    var web_txt = document.documentElement.innerText;
    web_text;
    

    可以完整的显示当前页面的文本内容,但是如果在油猴脚本里面使用,获取的就是页面的源代码,不是渲染后的文本内容,想要获取 SPA 应用的渲染后的文本该怎么做?

    用的这个页面尝试的

    5 条回复    2022-05-01 12:02:39 +08:00
    YingJie
        1
    YingJie  
       2022-04-30 20:09:55 +08:00 via iPhone
    浏览器扩展不行吗?
    wdssmq
        2
    wdssmq  
       2022-04-30 20:16:53 +08:00
    正常都是弄个延迟,或者监听 #app 元素变动。。

    // 元素变化监听
    const fnElChange = (el, fn = () => { }) => {
    const observer = new MutationObserver((mutationRecord, mutationObserver) => {
    // _log('body attributes changed!!!'); // body attributes changed!!!
    // _log('mutationRecord = ', mutationRecord); // [MutationRecord]
    // _log('mutationObserver === observer', mutationObserver === observer); // true
    fn(mutationRecord, mutationObserver);
    // mutationObserver.disconnect();
    });
    observer.observe(el, {
    // attributes: false,
    // attributeFilter: ["class"],
    childList: true,
    // characterData: false,
    subtree: true,
    });
    }
    E0
        3
    E0  
    OP
       2022-04-30 20:25:59 +08:00
    @wdssmq 用浏览器扩展或者油猴脚本能实现吗?
    kkocdko
        4
    kkocdko  
       2022-04-30 21:14:00 +08:00
    2 楼都给出代码了,你试试再说呗。
    就是延迟一下,等渲染完了再获取。没什么大不了的。
    wdssmq
        5
    wdssmq  
       2022-05-01 12:02:39 +08:00
    @E0 #3 我贴的代码就是我实际在猴子脚本里在用的。。

    Mutation Observer API -- JavaScript 标准参考教程( alpha )
    https://javascript.ruanyifeng.com/dom/mutationobserver.html
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2823 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 11:56 · PVG 19:56 · LAX 03:56 · JFK 06:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.