link元素上的click()返回一个TypeError..为什么
click() on a link element returns a TypeError ... why?
我试图弄清楚为什么在<a>
标记元素上执行click((函数会返回'undefined_method'的TypeError。例如,请访问此页面:http://http://www.google.com/#&q=测试。现在,这个页面上的每个搜索结果都有一个类名"l",所以如果我要求:
document.getElementsByClassName('l')
我得到了所有搜索结果<a>
标签的列表。从逻辑上讲,如下索引这个数组会给我一个特定的<a>
标签:
document.getElementsByClassName('l')[0]
但是,如果我想点击那个链接怎么办?我希望以下能起作用
document.getElementsByClassName('l')[0].click()
但我得到的却是TypeError"undefined_method"。
为什么?我该如何激活此链接?
thx
如果您想将点击事件分派到DOM中,则必须对兼容的浏览器使用W3C DOM dispatchEvent方法,对其他浏览器使用MS fireEvent方法。某些浏览器可能不支持这两种功能。
如果你想处理HTML5浏览器,那么你可以调用元素的点击方法,但你必须首先测试支持,如果浏览器没有响应,不要感到惊讶。大多数人认为以程序方式激发元素侦听器/处理程序是件坏事。
在这种情况下,最好的方法可能是如Zhehao Maoto所说,将window.location属性设置为A元素的href,或者让用户点击他们想要的链接,让HTML完成它的工作。
编辑
测试表明,IE支持A元素上的click,从而触发click处理程序并跟踪链接(如果处理程序没有返回false(。在Firefox中,会调用处理程序,但不会跟随链接。
在Chrome中,一个A元素什么也不做,只是按钮会做出响应。Opera启动A的点击处理程序并跟随链接。因此,最重要的是,支持率非常不稳定(并不令人意外(。
例如
<!-- Call click() on link to Google -->
<a href="#" onclick="
var el = document.getElementById('a0');
if ('click' in el) {
alert('found click'n' + el.click);
el.click();
}">Click link</a>
<!-- Call click on button with onclick handler -->
<a href="#" onclick="
var el = document.getElementById('b0');
if ('click' in el) {
alert('found click'n' + el.click);
el.click();
}">Click button</a>
<a href="http://www.google.com" id="a0">Google</a>
<button onclick="alert('click!!');" id="b0">button</button>
该错误意味着javascript锚定对象没有"click(("方法。如果你想以编程方式遵循链接,最简单的方法就是这样
window.location = a.href; // assuming a is an anchor object
这将获取链接的url(href属性(,并通过设置window.location
将浏览器重定向到该位置。
在链接上调用.click()
方法(我相信(将无效,除非操作绑定到onclick
事件。你想要类似的东西:
document.getElementsByClassName('l')[0].onclick();
如果你想做的是跟随链接,而不是激活onclick
操作,请执行以下操作:
window.location.href = document.getElementsByClassName('l')[0].getAttribute('href');
- TypeError:this.getAttribute不是一个函数-javascript
- 我收到此错误Uncatch TypeError:this.getElements不是一个函数
- TypeError:熟练程度不是一个函数,但它确实是
- jqGrid - TypeError: “#List”.jqGrid 不是一个函数
- TypeError: matrix[y].push 在尝试使用 javascript 创建 2D 数组时不是一个函数
- TypeError: e[h] 不是一个函数
- Infragistics igGrid Uncatch TypeError: undefined 不是一个函数
- Javascript:uncatch TypeError:undefined不是一个函数
- TypeError: require(..) 不是一个函数
- TypeError: undefined 不是一个函数(评估 'document.getsElementsByC
- “TypeError: req.flash 不是一个函数”,使用带有 nodejs、用户名和密码身份验证的护照
- 为什么process.nextTick()在这个“假异步函数”中触发了一个TypeError,而setTimeout()
- Simple Array.prototype正在给出一个TypeError
- 我得到一个TypeError时,试图推迟Jquery,我如何克服这一点
- javascript,又一个TypeError: 'undefined'不是一个函数
- 为什么当我试图从父页面调用iFrame中的函数时,我得到一个TypeError
- 不能弄清楚为什么这是给我一个TypeError
- 试图用$rootScope实现一个指令,得到一个TypeError: Cannot read property '
- link元素上的click()返回一个TypeError..为什么
- 为什么我的代码给了我一个TypeError:x.documentElement是未定义的