相关疑难解决方法(0)

如何在javascript中模拟鼠标点击时设置目标属性?

我想在我的javascript代码中使用dojo来模拟鼠标点击.使用带有"ondijitclick"的dojo-stuff注册真正鼠标点击的动作.

我知道调用哪个方法/函数,我也有dijit对象来调用这个方法.该方法需要一个函数对象作为参数,所以我正在创建一个新的MouseEvent对象.这一切都很好,除了我需要设置此事件的目标值,我无法弄清楚如何做到这一点.这是必需的,因为后来的异常处理正在访问target-property,我无法避免这种情况.

到目前为止我的代码:

    dojo.query(".mybutton").forEach(function (node) {
        var target = dojo.query(".myclass").parents("#" + node.id)[0];
        var event = new MouseEvent('click', {
            'view' : window,
            'bubbles': true,
            'cancelable': true
        });
        dijit.byId(node.id)._doEvent(event);
    });
Run Code Online (Sandbox Code Playgroud)

如果我添加以下行

            'target' : target,
Run Code Online (Sandbox Code Playgroud)

在MouseEvent创建中,将不会设置该属性(但所有其他属性都将设置),并且target-property将为null,但target本身不为null.

是否有可能以某种方式设置目标属性?如果有可能我想知道我做错了什么?

编辑:

我发现了一个非常脏的解决方案,其中包括来自底层框架的小部件中的最小但不期望的更改.

我只能实现relatedTarget属性设置,而target仍然是null.如果检查target属性为null,并且如果它为null,则relatedTarget在widgets方法中,一切都按预期工作.模拟的点击和真正的点击都正常工作.

这个解决方案的唯一问题是我必须修改框架中的小部件.这是我们在发布版本中不会做的事情.这是一种可能的解决方案,但实际上这种解决方案对我们来说是不可接受的.

因此,仍然存在如何target使用正确的值设置属性的问题.正如解决方案在genereal中所显示的那样,除了设置target属性外,它都可以工

我无法看到这是通过Ferry Kranenburg提出的解决方案实现的.如果这个解决方案能够满足我的需要,那么如果有人可以向我解释这个技巧,那就太好了.

javascript dojo mouseevent

5
推荐指数
1
解决办法
3545
查看次数

Javascript - 触发特定的键盘键

我有这段代码:

window.addEventListener('keydown', function (e) { 
   console.log(e.which); 
   console.log(e.keyCode); 
});

 var evObj = new KeyboardEvent('keydown', {key:65});
 window.dispatchEvent(evObj);
Run Code Online (Sandbox Code Playgroud)

为什么我在控制台看到0而不是65?

e.keyCode和e.which都是0而不是65,我在Chrome最新版本

非常感谢.

javascript keyboard events triggers

5
推荐指数
1
解决办法
633
查看次数

如何以编程方式禁用 Chrome 开发人员工具中的 JavaScript?

另一个相关问题仅说明如何通过 Chrome 提供的 GUI 打开/关闭 JavaScript。但是,我想从 Chrome 控制台以编程方式切换 JavaScript ,或者通过一次击键(例如点击 F12)来切换 JavaScript。

我想要这种能力的原因是因为我正在开发一个 Web 应用程序,它有一个我想要修改的下拉菜单;我不确定这个下拉菜单在代码库中的位置,所以我想暂停执行并检查它。每当我单击任何开发人员工具选项以暂停执行时,它都会关闭下拉菜单。

一个潜在的解决方案是简单地将调试器放在下拉菜单所在的代码中,但这是一个先有鸡还是先有蛋的问题,因为暂停执行的全部目的是找到该下拉菜单在代码库中的位置。

javascript google-chrome

5
推荐指数
1
解决办法
4396
查看次数

如何以编程方式使折线图点处于活动/突出显示状态

我使用的是 Chart.js 2.0 beta2,页面和滑块上有几个折线图。我想突出显示每个折线图上与滑块位置匹配的数据点(它们都具有相同的点数)。我不知道如何轻松地在代码中激活一个点。感谢您的任何提示。

javascript chart.js

5
推荐指数
1
解决办法
4488
查看次数

有什么方法可以在开发人员工具中模拟onmouseover吗?

我知道Firefox提供了一种模拟悬停,活动和焦点过滤器的方法。

在此处输入图片说明

有什么方法可以模拟onmouseover高程?

我想一起模拟两个元素,这可能吗?

我没有为此目的找到任何扩展。先感谢您。

javascript firefox onmouseover firefox-developer-tools

5
推荐指数
2
解决办法
1397
查看次数

如何通过浏览器控制台以编程方式单击按钮[代码内部]

出于某种原因,我可以单击某些链接/按钮,但不能用于具有onclick属性的按钮/任何内容.例如:我输入浏览器控制台的JavaScript代码:

var o = document.getElementsByName("takepic"); 
for (var i = 0; i < 1000; i++){
    o.click();
    console.log(i);
}
Run Code Online (Sandbox Code Playgroud)

我把console.log放进去,所以我知道浏览器正在做什么,以及它目前在哪里.

页面上的html代码:

<form>
    <input type="button" value="Configure..." onclick="webcam.configure()">
    &nbsp;&nbsp;
    <input type="button" value="Take Snapshot" onclick="take_snapshot()" name="takepic">
</form>
Run Code Online (Sandbox Code Playgroud)

基本上,我想使用浏览器控制台拍摄快速快照,但是当我输入我的代码时,我收到此错误:

TypeError:Object#没有方法'click'

当我使用相同的代码时,比如在Facebook上重新添加朋友,我使用这个:

var o = document.getElementsByName("fbaddfriend_example"); 
for (var i = 0; i < o.length; i++){
    o[i].click(); 
    console.log(i);
}
Run Code Online (Sandbox Code Playgroud)

绝对有效.我只是试图用页面上的按钮做同样的事,但没有用.

html javascript

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

onclick()不在safari中工作

下面的代码在IE7上工作正常,但在Safari(5.0.5)中没有.如果可能的话,我想避免使用jQuery.目标是使此功能在iPad上运行,但现在正在使用桌面游戏进行测试.如果您有任何关于在IE和Safari上工作的想法,请告诉我.

<div id="test" ></div>
<script>
  function attachCallback(node) {
    node.onclick = function() {   
      alert("coming here");
    } ;
  }  
  var retrybutton = document.createElement("img");
  retrybutton.src = "test.png";
  retrybutton.alt = "retry";

  retrybutton.setAttribute("id","retrybutton");
  attachCallback( retrybutton ) ;

  var a = document.getElementById("test");
  a.appendChild(retrybutton);
  // testing without using retrybutton
  var test = document.getElementById("retrybutton");
  test.click();
</script>
</body></html>
Run Code Online (Sandbox Code Playgroud)

更新:辩论是否与"onmouseup"或类似下面的东西[ 谢谢Andres !! 我无法添加评论]

 if (Prototype.Browser.IE) {
   document.getElementById("retrybutton").click(); 
 } else { // from question link in comment
   var event = document.createEvent("HTMLEvents");
   event.initEvent("click", true, true);
   document.getElementById('retrybutton').dispatchEvent(event);
 }
Run Code Online (Sandbox Code Playgroud)

html javascript safari onclick

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

&lt;audio&gt;元素上的onclick事件

给定以下标记:

<audio controls onclick="alert('hi')">
    <source src="/url/track.mp3" type="audio/mpeg">  
</audio>
Run Code Online (Sandbox Code Playgroud)

我没有收到来自onclick事件的响应。似乎所有onclick事件都绑定到播放器控件。

我的目标是在用户点击“播放”时运行一个单独的功能。

javascript audio jquery element onclick

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

使用javascript |下载base64数据 IE11

我试图在JavaScript中使用"window.location.href"下载base64数据.它在Chrome中工作正常,但相同的代码在IE11中不起作用.

你可以告诉我这个修复或解决方法吗?

这是代码:Javascript:

function DownloadPdf() {
window.location.href = "data:application/pdf;base64,JVBERi0xLjMNJeLjz9MNCj........Pg1zdGFydHhyZWYNMTczDSUlRU9GDQ=="
Run Code Online (Sandbox Code Playgroud)

}

function DownloadExcel() {
window.location.href = "data:application/vnd.ms-excel;base64,UEsDBBQABgAIAAAAIQB......BLBQYAAAAACgAKAIACAACzHAAAAAA="
}
Run Code Online (Sandbox Code Playgroud)

HTML:

注意:

我正在开发一个离线网站,我将文件存储在base64字符串格式的浏览器localStorage中,该格式未连接到服务器.我没有任何物理文件.

javascript jquery

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

如何在javascript中模拟点击?

其中一个功能是,当用户点击某些内容时,会发生一些事情.如何在不调用函数的情况下模拟此单击?

javascript jquery

0
推荐指数
2
解决办法
2583
查看次数

使用 jquery 或 javascript 可能是 AJAX 单击 iframe 内的元素

在浏览了众多论坛上的大量帖子之后,没有一个帖子能够接近我想要完成的目标的解决方案。

这是我想要实现的目标:

我在 iframe 上有一个页面,我想单击该 iframe 内的 div 标签。我该如何操作。我见过具有鼠标事件模拟器的脚本,但我不知道如何使用它们。

站点 1 =http://site1.com/page.html

站点 2 =http://site2.com/abc.html

站点 2 的代码: 代码:

<div>
    <div>
        <div attribute="text" onClick="somefnc();">
                james bond
        </div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

站点 1 的代码:

代码:

<iframe src="http://site2.com/abc.html></iframe>
Run Code Online (Sandbox Code Playgroud)

我想做的是有一个自动单击 james bond(div 内的文本)的脚本,记住我无法控制http://site2.com/abc.html

最好列出可以实现这一目标的方法,以及我在哪里可以免费学习这种类型的“DOM”(主要处理鼠标事件的javascript)。非常感谢任何参考。非常感谢逐步浏览代码。

我是这方面的菜鸟。

到目前为止我已经尝试过:

尝试1:JavaScript

.click();
Run Code Online (Sandbox Code Playgroud)

尝试1的错误:跨域问题

尝试2:鼠标模拟

尝试2的错误:菜鸟代码对我来说太复杂了

请帮忙。

猜测解决方案

  1. 类似脚本的鼠标模拟

  2. 一些简洁的 jquery 代码

  3. AJAX,也许是 PHP

html javascript ajax iframe jquery

0
推荐指数
1
解决办法
3845
查看次数