原生javascript点击dom元素
Native javascript click on on dom element
我需要调用本地javascript中的单击操作。我得到了以下元素:
<svg class="pull-right svg-cross ng-isolate-scope" xmlns="http://www.w3.org/2000/svg" data-svg-icon="" icon="cross" ng-click="dismissBanner()">
<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#svg-cross"></use>
</svg>
I似乎是一个使用angular的网站。我想单击元素,以便正确调用函数dismissBanner()
。因此,我尝试了以下操作:
document.getElementsByClassName('pull-right svg-cross ng-isolate-scope')[0].click();
和
document.getElementsByClassName('pull-right svg-cross ng-isolate-scope')[0].onclick();
然而,两次尝试都失败了。我得到错误Uncaught TypeError: document.getElementsByClassName(...)[0].onclick is not a function(…)
。
我也直接调用dismissBanner();
函数,但是,然后我得到错误:Uncaught ReferenceError: dismissBanner is not defined(…)
我应该如何正确地做到这一点?
看起来是这样的工作方法:
angular.element('.svg-cross').trigger('click');
源码:如何以编程方式触发ng-click [AngularJS]
在与OP聊天后,我们发现使用的Angular版本是1.3.17
。对于这个版本,触发点击的正确方法是:
var el = document.getElementsByClassName('pull-right svg-cross ng-isolate-scope')[0];
angular.element(el).triggerHandler('click');
您可以通过向元素分派事件来模拟单击。有一个对象(Event),但是在IE中不支持构造函数。您可以使用已弃用的API (document.createEvent)来克服这个问题:
function mock() {
var evt;
try {
evt = new Event('click');
}
catch(e) {
evt = document.createEvent('MouseEvents');
evt.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
}
document.getElementById('trgt').dispatchEvent(evt);
}
<div id="trgt" onclick="alert('clicked!')">Don't click me</div>
<div onclick="mock()">Click me!</div>
相关文章:
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 如何在DOM元素上按类型构建此函数
- DOM元素和angular元素之间的主要区别是什么
- 当带有渲染器的DOM元素不在屏幕顶部时,移动了场景的坐标
- 如何使用JavaScript在没有html dom的情况下隐藏html元素
- 使用jquery创建dom元素会导致ie9出现拒绝访问错误
- 通过AJAX侦听向DOM添加某些元素
- 如何在使用Ractive.extend()时引用DOM元素
- 在d3中向DOM元素添加了图像,但现在它赢得了't过渡
- Selenium无法在浏览器DOM中定位元素
- 如何'剪切'DOM元素并将其显示在其他位置
- 转换<a>使用jQuery将文本字符串转换为dom元素
- 从dom中删除任何元素后,Touchmove事件停止触发
- d3在数据更新时错误地附加了dom元素
- 访问VueJS中的DOM元素
- 在Meteor中如何查找DOM元素(渲染后)
- 找到元素DOM的根节点(阴影或光)的最佳方法是什么?
- 在querySelector:如何获得第一个和最后一个元素?dom中使用的遍历顺序