2014-12-28 42 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);