estensione chrome e pagina web

IImanuII

Utente Attivo
10 Giu 2012
390
0
16
Salve a tutti,
Ho un problema con la mia estensione.
Ho creato una semplicissima estensione per chrome non inserita sullo store. Vorrei fare in modo che quando vado sulla home del mio sito questa rilevi se l'estensione è installata o meno. Una cosa tipo:

Codice:
if estensioneInstallata = true{
   echo "Grazie per aver installato l'estensione";
}else{
  echo "è disponibile l'estensione per mio sito.it scaricala ora";

Se non è possibile farlo con php va bene anche javascript o jquery.

Ho fatto in modo che l'estensione inietti nella mia home un div nascosto in questo modo:
HTML:
$("#load").append("<div id=\"divNascosto\" class=\"\"></div>");

Ho cercato di verificare con javascript se il div esistesse o meno ma non ha funzionato perché il codice viene inserito solo lato client quindi la verifica non può essere fatta.

Vorrei sapere se esiste un modo per poter far comunicare l'estensione con una pagina web insomma.

Ho trovato
https://developer.chrome.com/extensions/content_scripts.html#host-page-communication
Solo che si dovrebbe fare l'inverso cioè è l'estensione che dovrebbe dire alla pagina "ei sono installata". Idee??
 
Ultima modifica:
Ho cercato di verificare con javascript se il div esistesse o meno ma non ha funzionato perché il codice viene inserito solo lato client quindi la verifica non può essere fatta

Sei sicuro? Perché anche javascript viene eseguito lato client e abitualmente lavoro con elementi creati on the fly nel dom che rilevo tranquillamente con jquery.
Ammetto di non aver mai vagliato il caso preciso, ma posso chiedere che prova hai tentato di fare per rilevare il div ?
 
Ciao grazie per la risposta sei stato ultrarapido :)
Precisazione *con jquery

Codice:
if ($('#nomeID').length){
     //faccio qualcosa se l'id nomeID esiste
}
else{
    //non esiste il div con id nomeID
}

EDIT:
La struttura è un po questa:

Home.php

HTML:
<html>
	<head>
	</head>
	<body>
		<div id="si-attacca-dopo-questo-div"><h1>This is a host site. Welcome!!!</h1></div>
	</body>
	<footer>
		<script type="text/javascript">
if ($('#esiste').length){
     //faccio qualcosa se l'id nomeID esiste
}
else{
    //non esiste il div con id nomeID
}
		</script>
	</footer>
</html>

contentscript.js (contenuto nell'estensione) che inietta il codice:
Codice:
$(document).ready(function() {
	$("#si-attacca-dopo-questo-div" ).append("<div id=\"esiste\" class=\"miodiv\">Ciao</div>");
}
 
Ultima modifica:
Il codice scritto in questa maniera:
HTML:
<html>
	<head>
	</head>
	<body>
		<div id="si-attacca-dopo-questo-div"><h1>This is a host site. Welcome!!!</h1></div>
	</body>
	<footer>
		<script type="text/javascript">
if ($('#esiste').length){
     //faccio qualcosa se l'id nomeID esiste
}
else{
    //non esiste il div con id nomeID
}
		</script>
	</footer>
</html>

Viene eseguito a runtime, di conseguenza prima di:
HTML:
$(document).ready(function() {
	$("#si-attacca-dopo-questo-div" ).append("<div id=\"esiste\" class=\"miodiv\">Ciao</div>");
}

che invece aspetta il completo caricamento del dom per appendere il div.



Prova quindi così:
HTML:
<html>
	<head>
	</head>
	<body>
		<div id="si-attacca-dopo-questo-div"><h1>This is a host site. Welcome!!!</h1></div>
	</body>
	<footer>
		<script type="text/javascript">
$(document).ready(function() { 

if ($('#esiste').length){
     //faccio qualcosa se l'id nomeID esiste
}
else{
    //non esiste il div con id nomeID
}

});
		</script>
	</footer>
</html>


Se ancora non funziona, prendi gli strumenti da sviluppatore nel tuo browser e prova ad eseguire manualmente nella console
Codice:
$('#esiste')

In questo modo ci togliamo ogni dubbio.
 

Discussioni simili