2012-04-08 10 views
6

Sono ancora molto nuovo con le estensioni di Chrome e sto solo testando le cose. In questo momento ho un popup.html che con un breve modulo che voglio creare un avviso quando si fa clic su invia. Non posso per la vita di me capire perché non funziona.Avviso non visualizzato in popup.html dell'estensione chrome

<!doctype html> 
<html> 
<head> 
<title>Test</title> 
<script type="text/javascript" src="popup.js"> 

</script> 
</head> 
<body onload="alert('open')"> 
<form> 
Username: <input type='text' id="username" name='username'></input> 
Password: <input type='password' id='password' /> 
      <button onclick="alert('test');return false;">Login</button> 
</form> 
</body> 
</html> 

Qualche suggerimento?

Modifica: ho persino effettuato un onload nell'etichetta del corpo per vedere se un avviso si sarebbe aperto lì, ma non è così. Nel popup.js ho un avviso aperto su window.onload e funziona comunque.

risposta

9

La funzione si interrompe dopo il ritorno falso. Put return false alla fine dell'istruzione, quindi l'avviso dovrebbe funzionare. O potresti tirarlo fuori.

<button onclick="alert('test')">Login</button> 

Aggiornamento Dopo alcune ricerche ho trovato il seguente ...

non verrà eseguita

Inline JavaScript

Inline JavaScript, oltre che pericoloso string-to-JavaScript metodi come eval, non saranno> eseguiti. Questa restrizione vieta sia i blocchi in linea che i gestori eventi in linea> (ad es.).

Source here

+0

Hmm Ho cambiato la causa perché ha senso ma l'avviso non è ancora visualizzato. Ho anche aggiunto un onLoad al corpo per vedere se un avviso si verificava lì ma non lo era:/ –

+0

Assicurati di ricaricare l'estensione quando apporti le modifiche. Puoi trovarlo andando su chrome: // settings/extensions # in chrome e facendo clic sul nome dell'estensione per espandere altre opzioni. –

+0

ah vedo! Va bene ho spostato tutto in un file js separato e ho usato addeventlisteners e ha funzionato perfettamente. Grazie!! –

3

Questo potrebbe essere il vostro problema troppo: inline scripts doesnt work with "manifest_version":2

Così, ho provato, e con il seguente manifesto, il codice funziona !

{ 
    "name": "test", 
    "version": "1.0", 
    "description": "test", 
    "manifest_version":1, 
    "browser_action": { 
    "default_icon": "images/padlock.png", 
    "default_popup":"html/popup.html" 
    }, 
    "permissions": [ 
    "tabs", 
    "http://*/*" 
    ] 
} 

comunque .. sarebbe meglio per gestire azioni in popup.js, ma in primo luogo, pulsante Modifica attributi popup.html alle seguenti: <button type="button">Login</button>

popup.js:

$(document).ready(function(){ 
    $(":button").click(function(){ 
     alert("test"); 
     //more code here... 
    }); 
}); 

ricordarsi di inserire jquery.js nel tag <head>, in popup.html, appena al di sopra di popup.js:

<head> 
<title>Test</title> 
<script type="text/javascript" src="../js/jquery.js"></script> 
<script type="text/javascript" src="../js/popup.js"></script> 
</head> 

Vorrei, è stato utile. Saluti Jim ..

+0

Apprezzo i tuoi sforzi, ma ho provato a cambiare 'manifest_version', non sembra funzionare per me. –

Problemi correlati