标签: dispatchevent

dispatchEvent在IE11中不起作用

我使用以下代码提交到表单:

element.dispatchEvent(new Event("submit"));
Run Code Online (Sandbox Code Playgroud)

Inspector返回错误:对象不支持此操作

这适用于Chrome.

此命令的目的是在单击时对窗体上的提交事件进行调用.

Jquery不是一个选择

javascript javascript-events dispatchevent internet-explorer-11

56
推荐指数
3
解决办法
3万
查看次数

"element.dispatchEvent不是函数"js错误在FF3.0的firebug中捕获

我在FF3.0中加载我的索引页面时收到以下错误.抱歉,我无法在此处粘贴脚本,因为它是2030行代码.

element.dispatchEvent不是一个函数

在扩展它给我下面的东西,

fire()()prototype.js?1(第3972行)

_methodized()()prototype.js?1(第246行)

fireContentLoadedEvent()prototype.js?1(第4006行)

[打破此错误] element.dispatchEvent(event);

element.dispatchEvent(event);在prototype.js的第3972行.我在我的索引页面中包含了prototype.js和10个其他js文件.

有没有人遇到过这种错误?请有人解释为什么会出现这个错误.

javascript firebug element dispatchevent

53
推荐指数
3
解决办法
10万
查看次数

如何使用JavaScript在Firefox中触发鼠标滚轮事件?

我正在尝试使用WebDriver进行自动化测试,但它目前无法模拟鼠标滚轮事件.作为一种解决方法,我试图用JavaScript来解雇这些事件.我现在正在直接在HTML页面上进行实验,而不是在WebDriver框架内.

我特意尝试在滚动div元素上触发鼠标滚轮事件.

到目前为止,我已经能够使用Chrome和IE9做到这一点,但我似乎无法在Firefox(5.x)中使用任何东西.

我正在使用以下跨浏览器代码来检测何时触发鼠标滚轮事件,这是我从网上抓取的.当我在我创建的滚动div(id ='view')中滚动鼠标滚轮时,此代码能够在所有浏览器中拾取事件.

<script type="text/javascript">
  function wheel(event) {
    var delta = 0;
    if (!event) {
      event = view.event;
    }
    if (event.wheelDelta) {
      delta = event.wheelDelta / 120;
    }
    else if (event.detail) {
      delta = -event.detail / 3;
    }

    alert(delta);
  }

  var view = document.getElementById('view');

  if (view.addEventListener) {
    view.addEventListener('DOMMouseScroll', wheel, false);
  }

  view.onmousewheel = wheel;
</script>
Run Code Online (Sandbox Code Playgroud)

调用时,下面的函数可以在Chrome和IE9中触发鼠标滚轮事件,并在上述处理程序中获取预期行为.

function ChromeWheel () {
  var evt = document.createEvent("MouseEvents");
  evt.initEvent('mousewheel', true, true);
  evt.wheelDelta = 120;
  view.dispatchEvent(evt);
}
Run Code Online (Sandbox Code Playgroud)

当然,它不适用于Firefox.我发现现有的文档太稀疏而且不知道FF如何处理这个问题.任何人都可以向我展示在Firefox中使用滚轮三角形(放置在FF预期的位置)中发射鼠标滚轮事件的最低限度,这样我的处理程序就可以将它拿起来?

javascript firefox javascript-events mousewheel dispatchevent

19
推荐指数
1
解决办法
2万
查看次数

为什么使用dispatchEvent触发定义的事件不遵循事件的冒泡行为?

我对下面的脚本感到困惑:

var event = new Event('shazam');

document.body.addEventListener('shazam',function(){
    alert('body');
});

document.addEventListener('shazam',function(){
    alert('document');
});

window.addEventListener('shazam',function(){
    alert('window');
});

document.body.dispatchEvent(event);
Run Code Online (Sandbox Code Playgroud)

当我在浏览器上运行此脚本时,我只是收到警报('body'); 事件.但是如果我将addEventListener(第三个可选参数)的capture参数设置为true,则按顺序捕获所有警报.

为什么shazam事件不会冒泡?

javascript events event-bubbling dispatchevent

17
推荐指数
1
解决办法
5782
查看次数

是否可以将鼠标单击调用事件()到<input type = text>元素?

基本上我正在尝试使用以下代码将自定义鼠标单击事件发送到文本输入元素(请参阅此jsFiddle):

function simulateClick(id) {
    var clickEvent = document.createEvent("MouseEvents");
    clickEvent.initMouseEvent("click", true, true, window, 1, 0, 0, 0, 0,
        false, false, false, false, 0, null);

    var element = document.getElementById(id);
    element.dispatchEvent(clickEvent);
}
Run Code Online (Sandbox Code Playgroud)

当我在一个type="checkbox"元素上运行该代码时,它可以很好地工作,但在type="text"元素上调用它时根本不起作用.

现在这里是initMouseEvent()关于MDN 的定义:

event.initMouseEvent(type, canBubble, cancelable, view, 
                 detail, screenX, screenY, clientX, clientY, 
                 ctrlKey, altKey, shiftKey, metaKey, 
                 button, relatedTarget);
Run Code Online (Sandbox Code Playgroud)

所以在上面的例子中screenX, screenY, clientX并且clientY都是0(仍然,上面的代码与复选框一起完全正常,无论它们的位置如何).我尝试捕获一个真实的事件并将屏幕和客户端坐标传递给cusom事件,但无济于事.

我可能由于安全原因,文本输入元素可能会忽略自定义鼠标事件,但是element.focus()它也不应该工作.

任何想法或见解将不胜感激!

javascript mouseevent dispatchevent

16
推荐指数
1
解决办法
2万
查看次数

如何将当前文档的innerHTML下载为文件?

有没有办法innerHTML编程方式将当前文档作为文件下载?

我做了以下尝试但没有成功.它确实下载了当前文档的源代码,但这不是我想要的,因为我想保留任何后载文档修改.

 var save = document.createElement('a');
 save.href = "my location href.attr";
 save.target = '_blank';
 save.download = fileName || 'unknown';

 var event = document.createEvent('Event');
 event.initEvent('click', true, true);
 save.dispatchEvent(event);
Run Code Online (Sandbox Code Playgroud)

javascript download dispatchevent

10
推荐指数
1
解决办法
2954
查看次数

如何使用添加的数据调度事件 - AS3

任何人都可以给我一个简单的例子,说明如何在actionscript3中发送一个附加了对象的事件,比如

dispatchEvent( new Event(GOT_RESULT,result));
Run Code Online (Sandbox Code Playgroud)

result是一个我希望与事件一起传递的对象.

apache-flex flash events actionscript-3 dispatchevent

9
推荐指数
1
解决办法
2万
查看次数

dispatchEvent(new Proxy(event, {}) 不起作用

我正在开发一个使用事件的应用程序。应用程序的模块在单独的容器中执行,我考虑使用代理来驯服被触发的事件。但是,我似乎无法dispatchEvent接受已代理的事件。

以下失败:

let event = new CustomEvent('my event');
let eventProxy = new Proxy(event, {});
let eventTarget = document.createElement('div');

try {
    eventTarget.dispatchEvent(eventProxy); // VM134:4 Uncaught TypeError: Failed to execute 'dispatchEvent' on 'EventTarget': parameter 1 is not of type 'Event'
} catch(error) {
    console.log(error.message);
}
Run Code Online (Sandbox Code Playgroud)

任何人都有任何想法如何dispatchEvent才能接受代理?

javascript dispatchevent dom-events ecmascript-6 es6-proxy

6
推荐指数
1
解决办法
267
查看次数

模拟输入字段中的按键 (Javascript)

我想将按键模拟到 INPUT 对象中。

由于字段的处理方式,我不能只设置元素值。

看起来解决方案与dispatchEvent和有关KeyboardEvent- 但有很多变体并且最不推荐使用。

当前将可打印字符发送到输入字段的现代方式是什么?

javascript keyboard-events dispatchevent

6
推荐指数
2
解决办法
2万
查看次数

以编程方式在 Google Colab 中运行“运行所有单元格”命令

我需要以编程方式从 Google Colab 菜单“运行时”运行某些命令“运行全部”。它没有任何明显的“onclick”事件处理程序,我可以从该页面上的 JavaScript 代码调用它。页面上的其他“div”可以从js调用,例如,我可以使用js代码连接到运行时:

document.querySelector('#top-toolbar > colab-connect-button').shadowRoot.querySelector('#connect').click();
Run Code Online (Sandbox Code Playgroud)

运行时菜单是一个下拉菜单,我尝试了其中的.click()每个项目,但没有效果。<div>

此外,“运行全部”命令有一个热键Ctrl + F9,但向document元素分派事件没有效果。但我可以Enter使用以下代码将命令发送到笔记本内的任何输入字段:

document.querySelector('input.raw_input').dispatchEvent(new KeyboardEvent('keydown', {key: 'Enter'}))
Run Code Online (Sandbox Code Playgroud)

使用 Chrome 代码检查器,Ctrl + Shift + I我查看了“Run all”命令,它看起来像:

<div command="runall" class="goog-menuitem" role="menuitem" id=":1w" style="user-select: none;"><div class="goog-menuitem-content" style="user-select: none;">Run all<span class="goog-menuitem-accel">Ctrl+F9</span></div></div>
Run Code Online (Sandbox Code Playgroud)

因此,我在页面上检查器代码的“源”选项卡内进行搜索,并在https://colab.research.google.com/v2/external/external_polymer_binary.js文件中发现“runall”的出现:

, Eja = X(new W({
        id: "runall",
        description: "Run all cells in notebook",
        shortcut: IG(120)
Run Code Online (Sandbox Code Playgroud)

F9顺便说一句,120 - 是按钮的键码。我还发现我认为所需菜单项的确切位置被称为:

        case "runall":
            d.runAll();
            break;
Run Code Online (Sandbox Code Playgroud)

但我几乎不可能理解它是什么d.以及它的参考在哪里!

我还发现了许多其他有趣且有用的命令,例如this.notebook.getKernel().isRunning()or …

javascript python frontend dispatchevent google-colaboratory

6
推荐指数
1
解决办法
3955
查看次数