吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 996|回复: 2
收起左侧

[其他原创] 续英语真题web的功能

[复制链接]
smilinghan 发表于 2024-4-12 11:27
本帖最后由 smilinghan 于 2024-4-13 13:59 编辑

上次看到一篇文章 hualy 大佬 写的文章感觉太🐂了 ,这次偶然发现这个虽然这篇没有什么技术含量,但感觉这个功能还是有点用处,便来记录一下。

上一篇讲述取消限制使用查询功能,这篇揪出了一个读音速度控制功能,废话不多直接上成果!

jiasu.png
英语真题在线pojie.png




这里涉及到 XPath 查询、修改元素属性、使用 MutationObserver 以及创建和添加按钮到页面。

[JavaScript] 纯文本查看 复制代码
(function() {
  const xpath = '/html/body/div[2]/div[4]/div[1]/div/div[2]';

  // 要修改的属性名
  const attributeName = 'aria-hidden';

  const node = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;

  // 初始状态为 false
  let attributeValue = 'false';

  // 修改属性值函数
  function toggleAttributeValue() {
    attributeValue = (attributeValue === 'false') ? 'true' : 'false';
    node.setAttribute(attributeName, attributeValue);
  }

  // 创建 MutationObserver 实例
  const observer = new MutationObserver((mutations) => {
    for (const mutation of mutations) {
      if (mutation.type === 'attributes' && mutation.attributeName === attributeName) {
        // 属性值被改回 true,重新改为 false
        if (node.getAttribute(attributeName) !== attributeValue) {
          node.setAttribute(attributeName, attributeValue);
        }
      }
    }
  });

  // 启动 MutationObserver
  observer.observe(node, { attributes: true });

  // 创建开关按钮
  const toggleButton = document.createElement('button');
  toggleButton.textContent = '读音速度开关';
  toggleButton.style.position = 'fixed';
  toggleButton.style.top = '50px';
  toggleButton.style.right = '50px';
  toggleButton.addEventListener('click', toggleAttributeValue);

  // 添加按钮到页面
  document.body.appendChild(toggleButton);
})();


1. 在这个脚本中,我们首先定义了一个 XPath 表达式来定位页面中的一个特定元素。然后,我们获取这个元素的引用,并定义了一个函数 `toggleAttributeValue` 来切换该元素的 `aria-hidden` 属性值。

2. 接着,我们创建了一个 `MutationObserver` 实例来监听该元素属性的变化。当 `aria-hidden` 属性的值发生变化时,如果它变回了 'true',我们将它重新设置为 'false'。这确保了我们始终控制该属性的值。

3. 最后,我们创建了一个按钮元素,并为其添加了一个点击事件监听器,该监听器在点击时调用 `toggleAttributeValue` 函数。这个按钮被添加到页面的 body 中,用户可以通过点击它来切换元素的 `aria-hidden` 属性。

附上 greasyfork  脚本存储点。

https://greasyfork.org/zh-CN/scripts/490620







免费评分

参与人数 1吾爱币 +7 热心值 +1 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

samleekiller 发表于 2024-4-13 13:47
看着不错呀,有时间我也试试
2367745 发表于 2024-4-15 09:25
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-15 11:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表