【问题标题】:Is there any way to simulate onmouseover in Developer Tools?有什么方法可以在开发者工具中模拟 onmouseover 吗?
【发布时间】:2016-09-10 21:38:53
【问题描述】:

我知道 Firefox 可以模拟悬停、活动和焦点过滤器。

有什么方法可以模拟onmouseover海拔?

我想在两个元素中一起模拟这个,可以吗?

我没有找到任何用于此目的的扩展程序。提前谢谢你。

【问题讨论】:

    标签: javascript firefox onmouseover firefox-developer-tools


    【解决方案1】:

    是的,因为它在您的图像中被选中,您可以使用 dispatchEvent 方法,但您必须事先在 chrome 控制台中创建事件并执行它。

    1. 预创建 :hover 事件
    var event = new MouseEvent("mouseover");
    
    1. 您将事件发送到 DOM 元素,其中 $0 是您在浏览器的调试器中选择的元素(在您的情况下是带有类 facebox 的 div)
    $0.dispatchEvent(event)
    

    【讨论】:

      【解决方案2】:

      您可以使用 dispatch 为元素发送/触发事件:element.dispatchEvent(event);。不同浏览器和版本上的support may varymy demo on jsfiddle 在 chrome 65 上工作。

      给定这个 html

      <div id="menu">
        <h3>Menu</h3>
        <div>Sample to fire onmouseover using a script</div>
        <ul>
         <li>one</li>
         <li>two</li>
         <li>three</li>
        </ul>
      </div>
      <button onclick="simulateMouseOver()">simulate onMouseOver</button>
      

      在鼠标悬停事件下方设置了&lt;div id=menu&gt;。一旦鼠标移到 div 上,事件就会触发:

      var menu =  document.getElementById("menu");
      menu.addEventListener("mouseover", function(event){   
      
          event.target.style.backgroundColor = "blue";
          setTimeout(function() {
            event.target.style.backgroundColor = "";
          }, 500);
      }, false)();
      

      要从脚本内部引发 onmouseover-event

      1. 首先必须创建正确的事件
      2. 然后触发/分派此事件到目标元素

      查看此代码

      function simulateMouseOver() {
        var listItems = document.querySelectorAll("ul li")
          var item1 = listItems.item(1);
        var event = new MouseEvent('mouseover', 
             {view: window, bubbles: true, cancelable: true});
      
        var cancelled = !item1.dispatchEvent(event);
        if (cancelled) {
          // a handler called preventDefault.
      
        } else {
          // none of the handlers called preventDefault.
      
        }
      }
      

      您可以在

      找到更多信息

      question simulate a mouse click from 2011Trigger events in javascript from 2010 对于旧浏览器的支持可能有用。

      【讨论】:

      • 这个答案帮助我实现了我在 Angular 应用程序中寻找的强制鼠标悬停事件触发。这对我有用:Chrome v71.0.3578.80 中的$('TARGET_SELECTOR').dispatchEvent(new MouseEvent('mouseover', {view: window, bubbles: true, cancelable: true}));
      猜你喜欢
      • 1970-01-01
      • 2012-02-18
      • 2017-12-12
      • 1970-01-01
      • 2016-07-18
      • 1970-01-01
      • 2017-12-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多