Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    problema con funzione in file esterno

    Ciao a tutti, ho uno strano problema con una semplice funzione JS in un file esterno.

    Vi Spiego meglio la situazione: ho una funzione scritta per browser mozilla/firefox che permette di aggiungere la pagina corrente tra i preferiti, come potete vedere a questo indirizzo
    LINK-1
    se inserisco il codice all'interno della pagina tutto funziona correttamente.

    Se invece con questo codice creo una funzione e la metto in un file esterno, lo stesso codice non funziona più!!
    Ecco il link incriminato:
    LINK-2

    se faccio click sul link non succede nulla, e se guardo nella consolle javascript di firefox ottengo l'errore che la variabile
    codice:
    titolo_corrente
    che valorizzo con
    codice:
    document.title
    non è definita!!

    Come posso risolvere questo problema?? S.O.S

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    da una prova cambiado questa riga
    codice:
    document.write( '<a href="javascript:window.sidebar.addPanel( document.title, window.location, \'\' );">Aggiungi ai preferiti<\/a>' );
    funziona anche non la funzione inclusa
    codice:
    <script language="javascript" src="preferiti.js"></script>
    Il motivo perchè la tuo script non va credo ma non sono sicuro sia; quando il browser carica una pagina il caricamento avviene cronologicamente cioè:
    <html>
    <script language="javascript" src="preferiti.js"></script><---Quando arriva qui carica lo script prima di proseguire con il documento, pertanto quando nello script richiami il nome del documento , questo non è ancora stato caricato.
    <body>
    Spero che tu abbia capito cosa voglio dire. Ma ribadisco che non sono sicuro che sia cosi che funzioni.
    Forse un Mod puo toglie eventuali dubbi.


    P.S. lo sai che sidebar.addPanel a un baco, nel senso che la pagina salvata nei preferiti una volta richiamata si aprira nella barra laterale e non nella pagina centrale/principale.
    Cosa che mi avevano segnalto. Quando avevo realizzato un script per i preferiti (prensente nelle discussioni utili) ma che fino ad oggi non sono riuscito a risolvere
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Ciao Andrea, grazie per i tuoi consigli,
    come hai potuto notare questa funzione non è altro che un pezzo della tua "aggiungi ai preferiti"....

    Ho comunque fatto di verse prove e ho notato che questo errore invece non si verifica con il browser Opera, a questo link potete vedere il risultato (Mi raccomando usate OPERA )
    LINK

    ci sono soluzioni per risolvere in firefox??

  4. #4
    Ciao a tutti!!
    Finalmente ho trovato una soluzione per portare la funzione "aggiungi ai preferiti" compatibile con i browser principali (Firefox, IE, Opera) in un file esterno, ecco il codice:

    nella pagina HTML oltre a mettere l'inclusione del file JS esterno nell'HEAD bisogna scrivere questo

    codice:
    <script type="text/javascript">
    var titolo = document.title;
    var url = window.location;
    preferiti(titolo, url);</script>

    il codice dello script è il seguente:

    codice:
    function preferiti(titolo,url)
    {
    if( window.sidebar && window.sidebar.addPanel ) { 
    if (navigator.userAgent.lastIndexOf("Netscape") != -1) {
    document.write( '<a href="javascript:window.sidebar.addPanel( titolo, url, \'\' );">Aggiungi ai preferiti<\/a>' );
    }
    else{
    document.write( '<a href="javascript:window.sidebar.addPanel( titolo, url, \'\' );">Aggiungi ai preferiti<\/a>' );
    }
    }
    if( window.opera && window.print ) {
    var a="<a title=";
    var b=document.title;
    var c="href=";
    var d=window.location;
    document.write( a+ '"'+ b+ '"' +' rel="sidebar" '+ c+ '"'+ d+ '"' + '>Aggiungi ai preferiti<\/a>');
    } else if( window.external && ( navigator.platform == 'Win32' || ( window.ScriptEngine && ScriptEngine().indexOf('InScript') + 1 ) ) ) {
    document.write( '<a href="javascript:addbookmark()">Aggiungi ai preferiti' + ( ( navigator.platform == 'Win32' ) ? '' : 'Hotlist entry' ) + '<\/a>' );
    }
    }
    function addbookmark(){
    var bookmarkurl=window.location;
    var bookmarktitle=document.title;
    if (document.all)
    window.external.AddFavorite(bookmarkurl,bookmarktitle)
    }
    Sicuramente il codice si può migliorare, io non me ne intendo un granchè di JS....
    Questo piccolo script (realizzato partendo da quello di cavicchiandrea) risente ancora del problema su firefox che il bookmark viene aperto nella barra laterale, se qualcuno trovasse la soluzione......

    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.