2014-12-28 48 views
-5

码不起作用:活动不叫

//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扩展。 该事件不会called-虽然

openInSkroutzButton()犯规被调用时,我按一下按钮

+1

没有人会去通过所有T他在另一个网站上编码以回答一个模糊的问题。发布不符合你问题的代码。 – epascarello

+0

这会让你无处可去。在问题中添加一些细节 – vjdhama

+1

欢迎使用堆栈溢出!请阅读[帮助]以了解如何在此处提问。特别是,问题必须是**独立**而不是依赖链接;链接腐烂,人们不应该离开现场去帮助你。清楚你的问题:说出你想要做什么,你期望发生什么,取而代之的是什么,以及为什么你会惊讶。如果可能,创建一个[MCVE](/ help/mcve)。一旦你发布你的问题,*坚持*以回应征求更多信息的意见,不要问及 - 运行。 –

回答

1

对于初学者来说...删除从函数名的报价和下降的括号内。你想传递一个函数的引用(不执行它)。

此外,您不需要将事件对象显式传递给事件处理程序...它将自动传递。

变化:

textField.addEventListener("keypress" , "keyPressedOnTextField(e)"); 

textField.addEventListener("keypress" , keyPressedOnTextField); 

btn.addEventListener("click" , "openInSkroutzButton()"); 

btn.addEventListener("click", openInSkroutzButton);