Chrome控制台:snippet命令无法打开对话框

时间:2017-11-05 08:44:38

标签: javascript dialog console google-chrome-devtools code-snippets

我有一个简单的oneline代码段,可以“点击”可见页面上的“加载文件”按钮来调用对话框弹出窗口(例如加载图像)。

minuteToStr

手动粘贴并在控制台中运行此行成功(它会打开对话框)时,上面的代码段无法执行此操作。似乎Chrome不允许通过用户调用打开对话框。所以,我设置浏览器允许所有弹出窗口,但没有结果。

在文件加载按钮显示的不同页面上测试。

感谢任何想法。

A similar but different issue, solved

1 个答案:

答案 0 :(得分:0)

  

似乎Chrome无法通过用户调用打开对话框。

我创建了一个片段来测试此语句是否为true。这似乎是不正确的。

  1. 点击此答案中的运行代码段按钮。
  2. 打开DevTools。
  3. 点击Inspect,然后点击显示350x150
  4. 的图片
  5. 在控制台中评估document.querySelector('img').click()。图像下方的文字递增。
  6. 从代码段运行相同的语句。文字仍然增加。
  7. 
    
    document.querySelector('img').addEventListener('click', () => {
      let p = document.querySelector('p');
      p.textContent = parseInt(p.textContent) + 1;
    });
    
    <img src="https://via.placeholder.com/350x150"/>
    <p>0</p>
    &#13;
    &#13;
    &#13;

    可能的解决方案:

    • 运行代码段时,请确保您处于正确的控制台上下文中。见Selecting Execution Context
    • 在您的陈述中使用this可能会导致问题。尝试删除它。
    • 尝试向您的元素添加ID,然后通过其ID而不是getElementsByName数组引用它。因此,请改用document.getElementById('myCustomId').click()。确保将ID添加到HTML元素,例如<img id="myCustomId" .../>。您可能引用了错误的元素,这就是为什么在执行click()时您看到错误结果的原因。

    在此答案中添加评论,我们最终会找出问题所在。