Autore Topic: [DEveloper] Inserire un swfobject e richiamarlo da una toolbar  (Letto 1599 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline ea1987

  • Post: 23
Ciao a tutti!Come da titolo vorrei sapere se è possibile inserire in un estensione per firefox un swfobject (per intenderci http://www.magnificaweb.it/flashobject/) e richiamarlo da toolbar attraverso la pressione di un button. Nel plugin che sto costruendo, compio attraverso una toolbar, una ricerca su youtube e vorrei sapere se fosse possibile oltre che a compiere la ricerca attraverso il bottone search, aprire una finestra contenente il video che ho cercato!Grazie per le risposte!
« Ultima modifica: 11 Novembre 2010 14:25:48 da gialloporpora »

Offline ea1987

  • Post: 23
Re: Inserire un swfobject e richiamarlo da una toolbar
« Risposta #1 il: 05 Novembre 2010 12:32:05 »
La mia idea sarebbe, una volta premuto il tasto search, di aprire una pagina html contenente un oggetto swf..è possibile la cosa?!

Offline ea1987

  • Post: 23
Re: Inserire un swfobject e richiamarlo da una toolbar
« Risposta #2 il: 08 Novembre 2010 11:59:03 »
Ho provato a costruire nello xul del plugin, un iframe.L' ho inserito al di fuori della toolbox, contenente la toolbar ma niente, non funziona.

Codice: [Seleziona]
<popupset>
        <panel id="testapopup">
            <iframe
                style="width: 640px; height: 480px"
                src="http://www.youtube.com"
                flex="100%"
            />
        </panel>
    </popupset>

Teoricamente una volta aperto firefox e installato il plugin si dovrebbe vedere la toolbar e la pagina giusto?Ho sbagliato qualcosa o non è questo il metodo giusto per creare una finestrella a parte?

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Re: Inserire un swfobject e richiamarlo da una toolbar
« Risposta #3 il: 08 Novembre 2010 12:02:58 »
Se vuoi creare "una finestrella a parte" devi creare una pagina xul o html, aprirla con "openDialog" e poi modificarla dinamicamente come più ti piace via javascript se ti serve.

Offline ea1987

  • Post: 23
Re: Inserire un swfobject e richiamarlo da una toolbar
« Risposta #4 il: 08 Novembre 2010 14:08:03 »
Grazie per la dritta klades!Come codice ho provato a creare una funzione richiamabile da un pulsante sulla toolbar:
Codice: [Seleziona]
Aprivideo: function()
{

//window.content.openDialog("chrome://content/prova.html", "", "", "", "");
window.content.openDialog("http://www.youtube.com", "pagina html", "", "", "");
window.content.resizeTo(640,480);
},

la prima linea di codice funziona e apre una la home page di youtube in una finestrella a parte, ho provato a inserire il metodo resizeTo ma nn me la sistema come dimensioni, cambiando invece le dimensioni della finestra originale del browser. Un altra cosa volevo chiederti, il codice commentato è quello che fa riferimento ad una semplice pagina html che ho creato e inserito nella cartella content soltanto che mi da come errore un eccezione:
Codice: [Seleziona]
Errore: uncaught exception: [Exception... "Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIDOMJSWindow.openDialog]"  nsresult: "0x80070057 (NS_ERROR_ILLEGAL_VALUE)"  location: "JS frame :: chrome://tuttoolbar/content/tuttoolbar.js :: anonymous :: line 25"  data: no]

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Re: Inserire un swfobject e richiamarlo da una toolbar
« Risposta #5 il: 08 Novembre 2010 16:05:31 »
la prima linea di codice funziona e apre una la home page di youtube in una finestrella a parte, ho provato a inserire il metodo resizeTo ma nn me la sistema come dimensioni, cambiando invece le dimensioni della finestra originale del browser.

Questa riga

Codice: [Seleziona]
window.content.resizeTo(640,480);
non ha senso.
Imposta l'altezza e la larghezza della finestra, tramite i parametri "height" e "width" della funzione openDialog (leggi https://developer.mozilla.org/en/DOM/window.open e https://developer.mozilla.org/en/DOM/window.openDialog).

Un altra cosa volevo chiederti, il codice commentato è quello che fa riferimento ad una semplice pagina html che ho creato e inserito nella cartella content soltanto che mi da come errore un eccezione:
Codice: [Seleziona]
Errore: uncaught exception: [Exception... "Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIDOMJSWindow.openDialog]"  nsresult: "0x80070057 (NS_ERROR_ILLEGAL_VALUE)"  location: "JS frame :: chrome://tuttoolbar/content/tuttoolbar.js :: anonymous :: line 25"  data: no]

Ricorda sempre che window.content è - diciamo così - la finestra in cui vedi i siti, mentre window è la finestra del browser e cioè Firefox stesso.
Ora è impossibile che un sito (e cioè window.content) possa aprire un indirizzo con protocollo chrome, che appartiene alla finestra del browser.
Prova ad usare

Codice: [Seleziona]
window.openDialog("chrome://[tuapagina], "", "resizable=yes");
Escludo che l'indirizzo "chrome://content/prova.html" possa essere valido, dovrebbe essere una cosa tipo "chrome://[tuaestensione]/content/prova.htm

Offline ea1987

  • Post: 23
Re: Inserire un swfobject e richiamarlo da una toolbar
« Risposta #6 il: 10 Novembre 2010 10:20:00 »
Prima che mi rispondessi avevo già sistemato tutto e caricato correttamente una pagina html di prova con parametri di larghezza e lunghezza impostati da me.Grazie Klades!!Un altra cosa..quella che mi hai consigliato te è giusta come idea per quanto riguarda l' uso di una nuova "finestrella". Quello che vorrei io è però invece qualcosa di diverso e vorrei sapere da te, che hai più esperienza, è realizzabile: una finestrella che contenga una pagina html che però non abbia la barra con la chiusura come quella aperta tramite opendialog e a cui volendo posso dare dimensioni 0 0, quindi renderla invisibile. L' ideale è che ci sia un metodo di apertura di questa finestrella, proprio come fa opendialog. Ho visto che iframe potrebbe essere una soluzione (mi sembra di capire che per quanto riguarda la visibilità ci sia la possibilità di settarne la trasparenza), ma non trovo nella documentazione, il modo con cui aprirlo a piacimento (una sorta di opendialog per intenderci..).

Offline ea1987

  • Post: 23
Re: Inserire un swfobject e richiamarlo da una toolbar
« Risposta #7 il: 10 Novembre 2010 14:15:59 »
Ci ho guardato un pò in queste ore..tralasciando il discorso iframe..ho letto, qualche post sopra hai scritto che si può lavorare dinamicamente anche sulle pagine html..credo che il discorso sia abbastanza complesso per quanto riguarda quello che voglio fare io. La pagina html che infatti carico tranquillamente è questa:
Codice: [Seleziona]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>YouTube Player API Sample</title>
    <script src="http://www.google.com/jsapi" type="text/javascript"></script>
    <script type="text/javascript">
      google.load("swfobject", "2.1");
    </script>   
    <script type="text/javascript">
      function _run() {
        /*
        * Simple player embed
        */
       
        // The video to load.
        var videoID = "ylLzyHk54Z0"
        // Lets Flash from another domain call JavaScript
        var params = { allowScriptAccess: "always" };
        // The element id of the Flash embed
        var atts = { id: "ytPlayer" };
        // All of the magic handled by SWFObject (http://code.google.com/p/swfobject/)
        swfobject.embedSWF("http://www.youtube.com/v/" + videoID + "&enablejsapi=1&playerapiid=player1",
                           "videoDiv", "480", "295", "8", null, null, params, atts);
       
       
      }
      google.setOnLoadCallback(_run);
    </script>
  </head>
  <body style="font-family: Arial;border: 0 none;">
    <div id="videoDiv">Loading...</div>
  </body>
</html>
presa da qua: http://code.google.com/apis/ajax/playground/#simple_embed.
Credo che sia impossibile però per me modificare la variabile videoId giusto?Perchè il valore della variabile videoId pensavo di passarglielo come argomento al momento di fare la opendialog:
Codice: [Seleziona]
window.content.openDialog("chrome://tuttoolbar/content/prova.html", "pagina html", "outerWidth=480,outerHeight=295", videoid);
ma nella pagina html come potrei ricavare il valore?Non credo che una semplice
Codice: [Seleziona]
var videoID = window.arguments[0]; inserita all' interno della funzione "run()" mi permetta di estrapolare il videoID passato come argomento alla funzione openDialog..
A questo punto come mi consiglieresti di procedere?Sto pensando anche all' usare una openDialog e caricare invece di una pagina html come ho fatto, una dialog.xul, ma la situazione diventa secondo me problematica per quanto riguarda l' embed del player, ma fattibile per quanto riguarda la ricezione dell' argomento videoId passato attraverso la openDialog, come spiegato nell' esempio "Passing arguments and displaying a dialog" inserito qui: https://developer.mozilla.org/en/Code_snippets/Dialogs_and_Prompts#Passing_arguments_and_displaying_a_dialog
Ciao e grazie!

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Re: Inserire un swfobject e richiamarlo da una toolbar
« Risposta #8 il: 11 Novembre 2010 10:34:56 »
Se tu apri una finestra con

Codice: [Seleziona]
window.content.openDialog("chrome://tuttoolbar/content/prova.html", "pagina html", "outerWidth=480,outerHeight=295", videoid);
il valore di videoid dovrebbe essere presente nella finestra che si apre proprio in window.arguments[0].
Hai provato e non ti ha funzionato?

Offline ea1987

  • Post: 23
Re: [DEveloper] Inserire un swfobject e richiamarlo da una toolbar
« Risposta #9 il: 11 Novembre 2010 22:12:23 »
Ciao klades, errore mio con delle parentesi e delle maiuscole..funziona tutto alla perfezione come avevo scritto prima e come mi avevi suggerito tu!Grazie del consiglio!Domani guardo per bene per sviluppare un paio di funzioni..è possibile ad esempio, dichiarando delle funzioni javascript nella pagina html contenuta nel dialog, richiamarlo poi esternamente ad esempio da un tasto della toolbar?

Offline ea1987

  • Post: 23
Re: [DEveloper] Inserire un swfobject e richiamarlo da una toolbar
« Risposta #10 il: 12 Novembre 2010 16:19:11 »
Niente, ci ho guardato tutt'oggi ma non trovo nessuna informazione per interagire da xul direttamente con una funzione presente su una pagina html..qualcuno ha qualche dritta?!

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Re: [DEveloper] Inserire un swfobject e richiamarlo da una toolbar
« Risposta #11 il: 12 Novembre 2010 17:56:19 »
Ammettendo che la pagina sia quella attualmente visualizzata, dovrebbe bastarti

Codice: [Seleziona]
window.content.nomeFunzione()

Offline ea1987

  • Post: 23
Re: [DEveloper] Inserire un swfobject e richiamarlo da una toolbar
« Risposta #12 il: 13 Novembre 2010 08:11:40 »
Ho provato ma non mi funziona..mi sono letto a proposito questa pagina https://developer.mozilla.org/En/DOM/Window.content e il discorso sembrerebbe filare, per chiamare una funzione da xul, chiamo l' oggetto dichiarato nel file.js e su di esso ci richiamo la funzione, per richiamare da xul una funzione contenuta in una window, richiamo l' oggetto attraverso window.content e su di esso ci richiamo la funzione contenuta nella window. Ho capito bene?La console degli errori però mi dice che la funzione non è definita!
Ho anche provato, su un altro tasto, a richiamare alert(window.content.title) per stampare a video il titolo del documento html ma niente..dici che tutto ciò funziona solo per pagine xul?Anche perchè nella spiegazione di window.content dice:
Citazione
This is useful in XUL windows that have a <browser> (or tabbrowser or <iframe>) with type="content-primary" attribute on it

Edit by Godai71: Sistemato il quoting.
« Ultima modifica: 13 Novembre 2010 09:57:42 da Godai71 »

Offline ea1987

  • Post: 23
Re: [DEveloper] Inserire un swfobject e richiamarlo da una toolbar
« Risposta #13 il: 15 Novembre 2010 13:33:49 »
ragazzi non so più dove sbattere la testa..qualcuno ne sa qualcosa?è una delle ultime due cose che mi mancano per finire l' applicazione!La pagina html, klades, comunque è sempre quella!

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Re: [DEveloper] Inserire un swfobject e richiamarlo da una toolbar
« Risposta #14 il: 15 Novembre 2010 17:30:19 »
A questo punto dovresti fornire un link con il progetto dell'estensione, perché se no è difficile seguirti.

0 Utenti e 1 Visitatore stanno visualizzando questo topic.