You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

脚本触发textarea点击无效,isTrusted属性相关问题咨询

如何通过脚本触发网站textarea的真实点击效果?

我需要在某特定网站上触发textarea的点击功能:用户手动点击该textarea时,它会进入编辑状态,占位符“A little bit about you...”消失,下方会出现“Save”和“Cancel”按钮。

点击前的textarea:
点击前的textarea

点击后的textarea:
点击后的textarea

我尝试了各种脚本触发点击的方法,但全都无效。更奇怪的是,添加全局click事件监听器无法记录该textarea的点击——这段代码在网站其他元素上正常工作,唯独对这个textarea不起作用:

document.addEventListener('click', function(event) {
    console.log(event.target); 
}, true);

由于该元素没有ID,我通过以下方式定位它:

var targetElement = document.getElementsByClassName('textarea__input')[1];

我尝试调用.focus()和.click()方法,毫无反应;甚至模拟类人点击的代码也没用:

var simulateMouseEvent = function (element, eventName, coordX, coordY) {
    element.dispatchEvent(new MouseEvent(eventName, {
        view: window,
        bubbles: true,
        cancelable: true,
        clientX: coordX,
        clientY: coordY,
        button: 0
    }));
};
var targetElement = document.getElementsByClassName('textarea__input')[1];
if (targetElement) {
        
        try {
            var box = targetElement.getBoundingClientRect(),
                coordX = box.left + (box.right - box.left) / 2,
                coordY = box.top + (box.bottom - box.top) / 2;

            simulateMouseEvent(targetElement, "mousedown", coordX, coordY);
            simulateMouseEvent(targetElement, "mouseup", coordX, coordY);
            simulateMouseEvent(targetElement, "click", coordX, coordY);
        } catch (error) {
            console.error("Error clicking text button:", error);
        }
    }

所有方法都无效,只有手动点击时textarea才会展开并显示“Save”和“Cancel”按钮。为什么点击该textarea时事件监听器没有任何日志?

对应的HTML代码如下:

<section class="settings-section is-opened" data-qa-role="settings-section-about">
   <header class="settings-section__header">
      <div class="settings-section__title" data-qa-role="settings-section-title">
         <h1 class="header-2"><span>About Me</span></h1>
      </div>
      <span class="settings-section__icon" role="presentation">
         <span class="icon icon--size-m settings-section__open-handler" role="presentation" data-qa-role="icon" data-qa-icon-name="generic-chevron-down">
            <svg data-origin="pipeline" viewBox="0 0 32 32" fill="none">
               <path fill-rule="evenodd" clip-rule="evenodd" d="M15.97 18.257l7.093-7.067a2.016 2.016 0 013.367.89c.188.691-.009 1.43-.516 1.937l-8.512 8.493a2.012 2.012 0 01-2.85 0l-8.513-8.493a1.994 1.994 0 01.049-2.778 2.013 2.013 0 012.788-.049l7.094 7.067z" fill="currentColor"></path>
            </svg>
         </span>
      </span>
   </header>
   <div class="settings-section__main" style="--settings-section-content-height:72px;">
      <div class="settings-section__content">
         <div class="settings-section__entry">
            <section class="settings-fieldset settings-fieldset--about" data-qa-role="about-fieldset">
               <div class="settings-fieldset__main">
                  <div class="settings-fieldset__field">
                     <div class="textarea has-autoheight has-placeholder" data-qa-role="profile-edit-about">
                        <div class="textarea__inner"><textarea class="textarea__input" placeholder="A little bit about you..." autocomplete="off" maxlength="300" dir="auto" style="height: 72px; min-height: 66px;">This is my teext</textarea><textarea class="textarea__ghost" aria-hidden="true" role="none"></textarea></div>
                     </div>
                  </div>
               </div>
            </section>
         </div>
      </div>
   </div>
</section>

更新

我发现了问题所在:网站可以检测到点击是由脚本触发而非真实用户操作。我记录点击事件的代码如下:

const textarea = document.querySelector('.textarea__input');
textarea.addEventListener('click', event => {
  console.log('Click event triggered on textarea:', event);
});

手动点击时的日志:
手动点击的事件日志

通过控制台调用.click()方法时的日志:
脚本点击的事件日志

ChatGPT指出:isTrusted属性为false表明事件由脚本生成,而非用户操作,这是浏览器的安全特性。但我看到有资料称网站无法访问isTrusted信息,请问如何通过脚本触发与手动点击完全相同的事件?


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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 15:25:03