使用带有click()javascript的函数
using a function with click() javascript
我正在尝试使用click()
的函数。我在控制台中没有错误,我该如何使它在点击时执行函数中的操作?这是我正在使用的代码。
inputIds = [].filter.call(document.getElementsByTagName('input'), function(el) {
return el.id.indexOf('ansx') === 0;
}).map(function(el) {
return el.id;
});
// random number between low and high range
inputId = inputIds[Math.floor(Math.random() * inputIds.length)];
document.getElementById(inputId).click(function() {
chrome.extension.sendMessage({ message: "text here" }, function(response) {
return response;
});
});
click
不是针对getElementById
返回的DOMElement
的事件绑定函数。正如评论者所指出的,click
调用了该事件。您需要使用jquery或使用普通的旧事件处理程序。
如果您没有使用任何JavaScript框架,则应该使用addEventListener
而不是click
函数。
document.getElementById(inputId).addEventListener("click", function() {
chrome.extension.sendMessage({ message: "text here" }, function(response) {
return response;
});
});
这是addEvent的一个通用实现,可以跨浏览器工作。
function addEvent(el, type, eventHandle){
if ( el.addEventListener ) {
el.addEventListener( type, eventHandle, false );
} else if ( el.attachEvent ) {
el.attachEvent( "on" + type, eventHandle );
} else {
el[type] = eventHandle;
}
}
你的代码看起来像
addEvent(document.getElementById(inputId), "click", function() {
chrome.extension.sendMessage({ message: "text here" }, function(response) {
return response;
});
});
我建议任何人使用像jQuery这样的基础框架,因为它会掩盖很多这样的怪癖。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 正在全局范围中查找JavaScript函数
- 如何将输入(type=text)从html表单传递到javascript函数
- 如何调用这个匿名 JavaScript 函数
- 通过Ajax将JavaScript函数传递给PHP文件
- 在javascript函数中设置全局变量
- 如何在执行此特定onclick事件时执行JavaScript函数
- 使用javascript函数在页面初始化后加载jquery
- javascript函数同步
- 如何将一个JavaScript函数回调为多个函数
- 在javascript函数中使用php变量
- 代码背后调用一个JavaScript函数的按钮点击-C#
- 将JavaScript函数与HTML分离
- 组合两个javascript函数
- 在 Java 中的 JavaScript 函数中插入 Wicket 值
- javascript函数内部的代码用逗号而不是分号分隔
- href属性内的javascript函数
- 使用html表单中的参数调用JavaScript函数
- 分析Javascript函数中的多个对象
- javascript函数的:和=之间的区别