Visualizzazione risultati 1 fino 10 di 10

Discussione: Impostare le caratteristiche del <base target>

  1. #1
    Guest

    Predefinito Impostare le caratteristiche del <base target>

    Ciao a tutti, ho una domanda abbastanza specifica da porre...

    Con l'html si può impostare la destinazione dei link dichiarandola nella sezione <head></head> in questo modo:
    <base target="_blank">

    Ciò significa che per default tutti i link della pagina in questione verranno aperti in una nuova finestra. Ora, mi chiedevo se fosse possibile impostare altre caratteristiche di questo <base target>, tipo queste proprietà che invece sono dichiarate nel tag <a></a> con javascript:

    <a href="javascript:void()" onclick="window.open('nomefile.htm','_new','channe lmode=no,directories=no,toolbar=no,location=no,sta tus=no,menubar=no,scrollbars=yes,resizable=no,widt h=420,height=400')">Link</a>

    In altre parole, come faccio ad impostare come finestra predefinita una finestra 420x400 con tutte le caratteristiche sopraelencate?

    L'unica maniera è quella di ripetere questo codice per ogni link? :?????:

    Grazie a chi avrà la bontà di rispondermi!!!
    Ultima modifica di mllemm : 08-08-2004 alle ore 11.13.01 Motivo: Ho scritto "uova" al posto di "nuova"...

  2. #2
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Uhmm... vediamo.

    Dipende un po' da quello che ti serve comunque..
    Nel base puoi mettere come target anche (e sorpattutto) un identificativo di finestra (o frame).
    Dunque potresti mettere
    <base target="ciccio">

    e a quel punto tutti i link si aprono in ciccio, se la finestra ciccio già esiste ed ha le sue caratteristiche, bene, ogni src dei link verrà caricato in questa finestra...
    altrimenti se non esiste ancora viene aperta una nuova finestra: qui sembrerebbe lo stesso comportamento del _blank ma attenzione, questa nuova finestra ora si chiama ciccio, non è una _blank qualsiasi; dunque tutti seguenti click si aprono sempre qui dentro.
    Se invece "ciccio" la crei nell'altro metodo che hai indicato, cioè tramite Javascript con window.open (perché la vuoi con alcune caratteristiche precise) è un po' un problema.. perché ok che puoi fare:
    window.open('nomefile.htm','ciccio','......');

    però dovrebbe essere aperta subito! appena caricata la finestra.. tipo popup.

    Facci sapere più precisamente come ti aspettavi il comportamento della finestra....
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  3. #3
    Guest

    Predefinito

    Dunque, immagina che sul sito ci sia una pagina che contenga un indice: questa è la pagina in cui definisco il <base target>. Tutte le voci dell'indice sono delle "schede" che devono aprirsi in una finestra che abbia l'aspetto di un pop-up (alla quale quindi posso definire dimensioni e togliere le varie barre di stato, degli strumenti etc.) ma che di fatto si apre "onclick".

    Siccome tutte le schede dell'indice devono avere lo stesso aspetto, fai conto 600x400, mi chiedevo se questa e le altre proprietà potevano essere definite a priori, ad esempio in <head></head> o nel foglio di stile o ancora in uno javascript.

    Se può essere utile, il mio sito è in HTML + CSS, con moderato uso di javascript.

    Grazie :grin:

  4. #4
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    ok hai spiegato molto bene, credo di aver chiara la situescion...
    solo che la vedo molto dura usare il <base target=...>
    te lo sconsiglio, in favore invece di una gestione javascript su tutti i link..
    Sai anche perché?
    perché visto che dopo la prima apertura avrai DUE finestre c'è da considerare il FOCUS, cioè la finestra selezionata, in primo piano. Che succede, se il popup ancora non esiste viene creata la finestra ok... ma nel caso in cui già esista, un semplice link con TARGET="ciccio" fa caricare, sì, la pagina nell'altra finestra ... ma rimane SOTTO, non viene in primo piano (a meno che in OGNI singola scheda non scrivi nel BODY onload="self.focus()" )

    Mentre se gestisci con Javascript puoi fare qualcosa del genere:

    Codice HTML:
    function mostrascheda(pagina){
    ciccioref = window.open(pagina+'.html', 'ciccio', '....');
    ciccioref.focus();
    }
    Se già esiste il window open non ne apre una nuova ma carica solo dentro il nuovo contenuto. In ogni caso ad ogni click il popup che già esista o meno viene sempre in primo piano.
    Ogni link alla scheda sarà:
    Codice HTML:
    <a href="javascript: mostrascheda('scheda1')">Scheda 1</a>
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  5. #5
    Guest

    Predefinito

    Sei stato molto gentile e presumo anche molto preciso, ma purtroppo a capire non sono tanto brava quanto a spiegare...

    Comunque, per grandi linee il discorso è chiaro, a questo punto ti chiedo se posso definire le proprietà comuni con uno script da mettere in <head></head> che poi possa essere richiamato semplicemente dal codice del singolo link...

    ... giuro che poi mi arrendo :grin:

  6. #6
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    Forse è tutta colpa del "ciccio" che confonde un po' :grin:
    chiamiamolo "popup"

    dicevo,
    puoi optare per una gestione via javascript
    1) per assicurati che il popup si apra con le caratteristiche che vuoi tu (dimensione etc..)
    2) per esser sicura che ad ogni clic sui link delle schede il popup (che sia rimasto a perto, chiuso o ancora mai aperto..) questo ti compaia comunque "in primo piano", davanti alla finestra che contiene i link.

    dunque dentro il blocco <HEAD> ... </HEAD> puoi inserire questo script, che definisce la funzione per aprire qualsiasi scheda, comune a tutti i link (questo per evitare appunto di riscrivere 40mila volte tutto il window.open....blablabla sempre uguale: l'unica cosa che cambia sarà il nome della pagina html che contiene ciascuna scheda. Fin qui OK?
    Ecco la funzione comune che accetta dunque un parametro "nomepagina" (senza il .html o .php dipende da cosa usi):

    Codice HTML:
    <script language="Javascript" type="text/javascript">
    var popupref;
    function mostrascheda(pagina){
     popupref = window.open(pagina+'.html', 'nomepopup', '...vari parametri...');
     popupref.focus();
    }
    </script>
    qualche info in più:
    la variabile popupref è il riferimento al popup visto come oggetto javascript
    'nomepopup' invece è una stringa che identifica la finestra, utili per eventuali TARGET, anche se in questo esempio non ti servirà, se non a stabilire che la finestra è sempre quella (che sia a perta o meno) per evitare doppioni.
    (anche se non sono chiare queste info, no problem, solo qualche dettaglio tecnico)

    Ora hai definito la funzione... bisogna utilizzarla rcihiamandola, lo farai in ciascun link alle varie schede.
    Per esempio (questo va nel BODY della pagina dove vuoi i link ovviamente) se hai 3 schede con relative pagine html (schedauno.html, schedadue.html e schedatre.html) dovrai scrivere così:

    Codice HTML:
    <a href="javascript: mostrascheda('schedauno')">Scheda 1</a>
    <a href="javascript: mostrascheda('schedadue')">Scheda 2</a>
    <a href="javascript: mostrascheda('schedatre')">Scheda 3</a>
    E direi che è tutto (spero più chiaro di prima, senza alcun ciccio eheh).

    Ovviamente poi dovrai adattarlo alla tua situazione che non conosco, per esempio se le schede sono in file .php dovrai sostituire (una volta sola) quel .html aggiunto ad ogni nome pagina nella funzione javascript comune.

    Nel caso provassi ad impementare questa soluzione e avessi problemi mi raccomando dammi anche il link alla pagina di prova così risolviamo al volo
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  7. #7
    Guest

    Predefinito

    Questa volta ho capito tutto e da quello che vedo credo dovrebbe funzionare tranquillamente (comunque provo subito, così mi tolgo ogni dubbio)...

    Ti ringrazio tantissimo, è bello che ci siano persone non gelose delle proprie conoscenze (io ne ho inconyìtrate parecchie in vari settori )

  8. #8
    Guest

    Predefinito

    Ti confermo che funziona alla grande e che è esattamente quello che volevo.

    Merci beaucoup :grin:

  9. #9
    L'avatar di heracleum
    heracleum non è connesso Utente storico
    Data registrazione
    21-01-2004
    Messaggi
    3,333

    Predefinito

    De nada figurati

    Ok, comunque ora che funge volevo anche aggiungerti qualche particolare:
    i link gestiti da javascript impediscono ai SearchBot (o spider, insomma degli "automi" dei motori di ricerca che si aggirano per la rete cercando e indicizzando i contenuti delle pagine) di seguire tali link. Dunque con difficoltà (se non linkati in altri modi) i contenuti delle schede saranno indicizzabili dai motori di ricerca.
    E' un problema?
    se sì fammi un fischio che vediamo una soluzione.
    Avvertimento: richiedere in privato questioni tecniche produrrà inevitabilmente una supercazzola prematurata come risposta. (5 served)

  10. #10
    Guest

    Predefinito

    Per il momento no... fai conto che le singole schede sono come le pagine di un libro, quindi mi basta che siano indicizzate solo le pagine principali, quelle con gli indici delle schede.

    In un secondo momento, dopo qualche mese di rodaggio e - si spera! - le risorse in Ac necessarie, vorrei passare direttamente a php+mysql, comunque per i primi mesi andrà più che bene così. Ti ringrazio ancora e non appena il sito sarà pubblicato sarai il primo a saperlo!!! :grin:

Regole di scrittura

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