未调用的事件
Events not called
不起作用
的代码:
//Add the search textfield
var textField = document.createElement("input");
textField.setAttribute("id" , "textF")
textField.setAttribute("type", "text");
textField.setAttribute("name", "textField");
textField.addEventListener("keypress" , "keyPressedOnTextField(e)");
//textField.setAttribute("onkeypress", "keyPressedOnTextField(e)"); violates policy
document.body.appendChild(textField);
//Add the open in Skroutz Button
var btn = document.createElement("input");
btn.setAttribute("id" , "btn")
btn.setAttribute("type", "button");
btn.setAttribute("value", "Open In Skroutz.gr");
btn.setAttribute("name", "openInSrkoutz");
btn.addEventListener("click" , "openInSkroutzButton()");
//btn.setAttribute("onclick", "openInSkroutzButton()"); violates policy
document.body.appendChild(btn);
function keyPressedOnTextField(e){
if(e.keyCode == 13){
openInTheWindow();
return false;
}
}
function openInSkroutzButton(){
console.log("test");
var searchText = getCurrentText();
console.log(searchText);
if(searchText === null || searchText < 2){//make sure to replace whitespaces with +
chrome.tabs.create({ url: "http://www.skroutz.gr/"});
}else{
chrome.tabs.create({ url: ("http://www.skroutz.gr/search?keyphrase=" + searchText).replace(/'s/g, "+")});
}
}
function getCurrentText(){
return document.getElementById("textField").value;
}
我正在尝试通过 JS 在 Chrome 扩展程序中向文档添加一些元素。事件未被调用 - 尽管出现
单击按钮时没有调用openInSkroutzButton()
对于初学者...删除函数名称中的引号并删除括号。您希望传递对函数的引用(而不是执行它)。
此外,您不需要将事件对象显式传递给事件处理程序...它将自动通过。
改变:
textField.addEventListener("keypress" , "keyPressedOnTextField(e)");
自
textField.addEventListener("keypress" , keyPressedOnTextField);
和
btn.addEventListener("click" , "openInSkroutzButton()");
自
btn.addEventListener("click", openInSkroutzButton);
相关文章:
- d3-js快速事件调用问题
- 使用按钮OnClick事件调用Javascript函数
- 了解在JavaScript中(在IE中)对某个事件调用了什么函数
- 如何使用onclick事件调用AngularJS控制器
- 无法从onclick事件调用JS函数
- 当多个 JS 事件调用同一个函数时,如何处理它们
- 为什么我从 JSLint 获得从事件调用的函数的“超出范围”
- 你能用onblur事件调用一个外部Javascript吗
- jquery mobile,从事件调用转换
- 如何使用C#为特定按钮事件调用JavaScript方法
- 如何在函数内部定义一个变量以供事件调用
- 如何从onClick事件调用对象函数
- 使用promise.then时,是否可以保留在单击事件调用堆栈中
- 如何断言间谍是使用jasmine通过点击事件调用的
- 使用AngularJS对超快速keyup和keydown事件调用函数
- 为同一标记中的两个不同事件调用两个javascript方法
- 事件调用方似乎无法正常工作
- 事件调用和范围问题
- 如何在 ng-repeat 中将变量值附加到事件调用
- j查询点击事件;调用特定函数(如果可用)