2014-12-28 2 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 к документу, в расширении хром. События не called- хотя

openInSkroutzButton() не получает вызывается при нажатии кнопки

+1

Никто не собирается пройти через все т он код на другом сайте, чтобы ответить на неопределенный вопрос. Отправьте код, который не работает в вашем вопросе. – epascarello

+0

Это ни к чему не приведет. Добавьте некоторые детали на вопрос – vjdhama

+1

Добро пожаловать в Stack Overflow! Пожалуйста, прочитайте [помощь], чтобы узнать, как задавать вопросы здесь. В частности, вопросы должны быть ** самодостаточными **, а не полагаться на ссылки; ссылки гниют, и людям не нужно уходить с сайта, чтобы помочь вам. Четко опишите свой вопрос: скажите, что вы пытаетесь сделать, что вы ожидаете, что происходит, и почему это вас удивляет. Создайте [MCVE] (/ help/mcve), если это вообще возможно. После того, как вы разместите свой вопрос, * придерживайтесь *, чтобы отвечать на комментарии, запрашивая дополнительную информацию, не спрашивайте и не запускайте. –

ответ

1

Для начала ... Удалите цитаты из имени функции и падение скобки. Вы хотите передать ссылку на функцию (не выполнять ее).

Кроме того, вам не нужно явно передавать объект события обработчикам событий ... Он будет передан автоматически.

Изменение:

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

в

textField.addEventListener("keypress" , keyPressedOnTextField); 

и

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

в

btn.addEventListener("click", openInSkroutzButton); 
Смежные вопросы