I enjoy using gemini with grounding, it’s very powerful, but it need to be set grounding again and again.

魔镜魔镜告诉我

我如何写一个油猴脚本使得
<button role="switch" type="button" class="mdc-switch mdc-switch--selected mdc-switch--checked" tabindex="0" id="mat-mdc-slide-toggle-3-button" aria-label="Grounding" aria-checked="false">
aria-checked="false" 自动变成 aria-checked="true"
网页是这个 <https://aistudio.google.com/u/1/prompts/new_chat>

它就给了

    function setAriaCheckedTrue() {
      const button = document.querySelector('button[role="switch"][aria-label="Grounding"][aria-checked="false"]');

      if(button){
        button.setAttribute('aria-checked', 'true');
      }
    }

    // Run immediately and on DOM changes
    setAriaCheckedTrue();
    const observer = new MutationObserver(setAriaCheckedTrue);
    observer.observe(document.body, { childList: true, subtree: true });

试了下没啥用, 但是属性的确变了, 思考了下应该是需要 click 事件触发.

于是改成了

    function setAriaCheckedTrueForGrounding() {
        const button = document.querySelector('button[role="switch"][aria-label="Grounding"][aria-checked="false"]');

        if(button) {
            button.click();
        }
    }

    // Run immediately and on DOM changes
    setAriaCheckedTrueForGrounding();
    const observer = new MutationObserver(setAriaCheckedTrueForGrounding);
    observer.observe(document.body, { childList: true, subtree: true });

耗时不到 4min. 学到了 MutationObserver 的用法.


用 gemini 解决 gemini 的问题, 原汤化原食.