javascript - 为什么输入类型 ='file' 不调度事件?

标签 javascript html events event-handling dom-events

为什么这个简单的例子不起作用?:

<input id="image" type="file"/>
<img src='https://cdn.elegantthemes.com/blog/wp-content/uploads/2015/02/custom-trackable-short-url-feature.png' onclick='imageLoad()'></img>
<script>
  function imageLoad() {    
    let ev = new Event('click', {bubbles: true});
    image.dispatchEvent(ev); 
  }
</script>

最佳答案

确实存在某些安全隐患,但根据您的目标,如果您将 Event 构造函数更改为 MouseEvent,则在此示例中它将起作用。

...
<body>
<input id="image" type="file" />
<img id="handle" src="https://cdn.elegantthemes.com/blog/wp-content/uploads/2015/02/custom-trackable-short-url-feature.png" />
<script>
  let handle = document.getElementById('handle');
  handle.addEventListener('click', imageLoad, false);

  function imageLoad() {
    let ev = new MouseEvent('click', {bubbles: true});
    image.dispatchEvent(ev); 
  }
</script>
...

关于javascript - 为什么输入类型 ='file' 不调度事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47175572/

相关文章:

Javascript 根据单选按钮更改类

html - flex 中的 Safari 相对位置

javascript - 使用 jQuery 模糊函数从输入字段返回值

javascript - 如何将 JQuery 效果限制为嵌套 block 中的一个元素

javascript - 如果使用Javascript相同的属性值相等,如何突出显示内容?

javascript - HTML 和 JQuery : how to retrieve data from previous form

javascript - 自己的 JavaScript 没有运行

html - h1 标签小于 h2,都在 section 标签内

Javascript检测div外的点击事件

windows - Windows 中的互斥与事件