Visualizzazione risultati 1 fino 14 di 14

Discussione: Cerco uno script che apra i link esterni in una nuova scheda [era:problema insolito]

  1. #1
    Guest

    Predefinito Cerco uno script che apra i link esterni in una nuova scheda [era:problema insolito]

    Salve o un problema che non so come risolvere,
    Praticamente voglio sapere se esiste un script che apra una nuova scheda ogni volta che si clicca su un link che porta fuori dal mio sito, ma voglio che sia una cosa automatica, xche se mi metto a fare lo script x ogni singolo link ci metto anni a finire xche o migliaia di link, quindi mi chiedo se ci sia uno script che magari vada nel head, e mi faccia questa operazione.
    Grazie In anticipo.

  2. #2
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Oltre agli errori grammaticali hai anche abbreviato la scrittura, questo è un forum pubblico, cerca di esprimerti usando un corretto italiano...

    Se ho capito bene, cerchi uno script che aggiunga l'attributo target="_blank" ad ogni link persente nella pagina.

    Uno script del genere:
    Codice:
    window.onload = function() {
         var links = document.getElementsByTagName("a"), i = 0, a;
    
         while(a = links.item(i++)) {
            a.target = "_blank";
        }
    };
    All'interno del tag head, oppure senza usare l'evento onload, subito prima della chiusura di </body>.

    Comunque se qualche tuo utente ha javascript disabilitato i link non si apriranno in una nuova scheda.

  3. #3
    Guest

    Predefinito

    Scusa per il post e che andavo di fretta,
    O provato e non funziona, poi mi serve uno script che apra una nuova scheda ogni volta che si clicchi su un link che porta fuori dal mio sito (con un dominio diverso dal mio), e non per tutti i link.
    GRAZE ANCORA

  4. #4
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Citazione Originalmente inviato da bollywood Visualizza messaggio
    Scusa per il post e che andavo di fretta,
    O provato e non funziona, poi mi serve uno script che apra una nuova scheda ogni volta che si clicchi su un link che porta fuori dal mio sito (con un dominio diverso dal mio), e non per tutti i link.
    GRAZE ANCORA
    Ma il codice l'hai inserito all'interno del tag <script>??
    Comunque modifica così lo script:
    Codice HTML:
    <script type="text/javascript">
    /* <![CDATA[ */
    window.onload = function() {
         var links = document.getElementsByTagName("a"), i = 0, a;
    
         while(a = links.item(i++)) {
              if(/^https?:\/\//i.test(a.href)) {
                   a.target = "_blank";
              }
        }
    };
    /* ]]> */
    </script>
    Inseriscilo all'interno del tag <head>.
    Questo considerando che i link interni al tuo sito non inizino con http o https...
    Ultima modifica di andreafallico : 22-07-2010 alle ore 13.01.30 Motivo: Cambiato tag, perchè eliminava i \ nella regex

  5. #5
    Guest

    Predefinito

    Questo considerando che i link interni al tuo sito non inizino con http o https
    E se invece anche i link interni iniziassero con http?
    Non si potrebbe fare uno script con qualcosa del genere: "aprire tutti i link in una nuova scheda, tranne se l'url contiene http://nomedelmiodominio.it"?

  6. #6
    L'avatar di darkwolf
    darkwolf non è connesso Salvatore Noschese
    Data registrazione
    18-04-2007
    Residenza
    Reggiolo (RE)
    Messaggi
    6,558

    Predefinito

    Ragazzi: io uso una versione modificata da me di wi.li. e fa esattamente questo e l'utente può anche scegliere se disabilitarlo (tutti senza blank) o no (solo esterni con blank)
    Il pulsante è sotto il tasto home :)
    Sciacallate dai sorgenti o, se preferite, scriverò una piccola guida

  7. #7
    L'avatar di javascripter
    javascripter non è connesso Moderatore
    Data registrazione
    14-02-2010
    Messaggi
    1,114

    Predefinito

    Citazione Originalmente inviato da musicanapoli Visualizza messaggio
    E se invece anche i link interni iniziassero con http?
    Non si potrebbe fare uno script con qualcosa del genere: "aprire tutti i link in una nuova scheda, tranne se l'url contiene http://nomedelmiodominio.it"?
    Si, si può fare.
    Basta cambiare la regexp, da:
    Codice:
    /^https?:\/\//i
    Diventa:
    Codice:
    /^http:\/\/nomedelmiodiminio\.it/i

  8. #8
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Devi negare la condizione
    Codice HTML:
    if(! ....)
    Ultima modifica di andreafallico : 22-07-2010 alle ore 15.54.49

  9. #9
    Guest

    Predefinito

    Inanzittutto grazie a tutti, il codice hce mi a dato javascripter funziona, solo che mi apre una nuova scheda per qualsiasi link, anche quelli che fanno parte del mio dominio.
    Spero che si possa risolvere, di seguito una pagina in cui o inserito il codice: http://www.apkacinema.com/film/hindi/n/n-1.shtml
    Grazie ancora.

  10. #10
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Questo perché la proprietà href non rispecchia perfettamente il contenuto dell'attributo corrispondente (contiene sempre l'URI assoluto).
    Prova così:
    Codice HTML:
    <script type="text/javascript">
    //<![CDATA[
    onload = function() {
    	var links = document.getElementsByTagName("a"), i = 0, a;
    
    	for(var i = 0; i < links.length; i++){
    		if(new RegExp(location.toString().match(/^.*?:\/\/[^?#]*\//)).test(links[i].href)){
    			links[i].target = "_blank";
    		}
    	}
    }
    //]]>
    </script>

  11. #11
    Guest

    Predefinito

    niente da fare non funziona, non apre una nuova scheda ne per i link che portano fuori dal mio dominio, ne per quelli che sono interni al sito
    di seguito la pagina in qui o provato lo script di karl94: http://www.apkacinema.com/film/hindi/m/m-1.shtml
    bisognerebbe fare tipo che apra una nuova scheda per tutti i link tranne quelli che anno il dominio www.apkacinema.com.
    GRAZIE ANCORA

  12. #12
    karl94 non è connesso Staff AV
    Data registrazione
    03-10-2005
    Messaggi
    17,745

    Predefinito

    Scusa, errore mio. Ora l'ho provato, così funziona:
    Codice HTML:
    <script type="text/javascript">
    //<![CDATA[
    onload = function(){
        var links = document.getElementsByTagName("a"), host = (location.toString().match(/^[^:]*:\/\/[^\/]*/)).toString();
    
        for(var i = 0; i < links.length; i++){
            if(links[i].href.indexOf(host) != 0){
                links[i].target = "_blank";
            }
        }
    }
    //]]>
    </script>
    Ultima modifica di karl94 : 24-07-2010 alle ore 12.11.43

  13. #13
    L'avatar di andreafallico
    andreafallico non è connesso Super Moderatore
    Data registrazione
    02-06-2009
    Messaggi
    1,981

    Predefinito

    Lo script di javascripter funziona solo se viene negata la condizione nell'if
    Codice:
    <script type="text/javascript">
    /* <![CDATA[ */
    window.onload = function() {
         var links = document.getElementsByTagName("a"), i = 0, a;
         while(a = links.item(i++)) {
              if(!/^https?:\/\/andreafallico.altervista.org/i.test(a.href)) {
                   a.target = "_blank";
              }
        }
    };
    /* ]]> */
    </script>
    Ultima modifica di andreafallico : 27-07-2010 alle ore 12.57.57

  14. #14
    Guest

    Predefinito

    Salve e grazie ancora
    karl94, o provato il tuo script ma non mi apre nessuna scheda ne per i link interni al sito ne per quelli che portano fuori dal sito.
    andreafallico o provato il tuo script e funziona alla grande adesso mi apre una nuova scheda per tutti i link che portano fuori dal mio sito, invece per i link interni non apre una nuova scheda, o sostituito andreafallico.altervista.org con www.apkacinema.com.
    adesso l'unico problema e che non funziona per home page

    -

    no scusate funziona anche per home page devo solo aspettare che la pagina venga caricata completamente.
    ADESSO CE UN ULTIMISSIMO PROBLEMA CHE CON INTERNET EXPLORER mi apre una nuova finestra invece di una scheda.
    non penso che dovrebbe essere molto difficile
    GRAZIE ANCORA
    Ultima modifica di andreafallico : 24-07-2010 alle ore 15.07.00 Motivo: Usa il tasto Edita

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •