Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente bannato
    Registrato dal
    Aug 2004
    Messaggi
    213

    Evitare apertura link in nuova finestra

    Vorrei evitare che un utente possa aprire i link presenti in una pagina in una nuova finestra del browser, sia dal menu contestuale del dx del mouse ("Open in new window") sia con la pressione del tasto shift+click sul link...
    Qualche suggerimento?

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Prendi il mouse dell'utente e lo stacchi dal computer: avra` molta difficolta` ad aprire nuove finestre (tuttavia e` possibile con alt-enter o control-enter).

    Altri sistemi non ce ne sono.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente bannato
    Registrato dal
    Aug 2004
    Messaggi
    213
    Ho trovato questo

    codice:
    function mouseDown(e) {
     var shiftPressed=0;
     if (parseInt(navigator.appVersion)>3) {
      if (navigator.appName=="Netscape")
           shiftPressed=(e.modifiers-0>3);
      else shiftPressed=event.shiftKey;
      if (shiftPressed) {
       alert ('Shift-click is disabled.')
       
       return false;
      }
     }
     return true;
    }
    
    if (parseInt(navigator.appVersion)>3) {
     document.onmousedown = mouseDown;
     if (navigator.appName=="Netscape") 
      document.captureEvents(Event.MOUSEDOWN);
    }
    </script>
    ma se elimino quella riga in grassetto (non voglio che compaia un alert) e' come se non ci fosse lo script

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Mi imbatto sempre piu' spesso in richieste tendenti a modificare il normale funzionamento del browser... che e' un programma di proprieta' dell'utente il quale ha il sacrosanto diritto di pretendere che lo stesso faccia quello che si aspetta.

    Se dovessi incontrare un sito che stravolge il mio modo di interagire con il web, dopo una prima fase di curiosità mi invoglierebbe a:
    - segnalare il malfunzionamento alla societa' che ha creato il browser;
    - inoltrare protesta all'amministratore del sito;
    - cercare e diffondere un antidoto;
    - bannare il sito dal mio pc (anche configurando il firewall o aggiungendo una linea al file hosts);
    - varie ed eventuali

    Infine, da bravo moderatore che cerca di evitare fastidi all'amministratore del forum, tenterei di impedire che un simile script venga pubblicato in queste pagine e reso disponibile a tutti

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    Utente bannato
    Registrato dal
    Aug 2004
    Messaggi
    213
    Con tutto il rispetto per la tua funzione (utilissima) di moderatore del forum, ti chiedo: hai (avete, per chi ha gli stessi "dubbi") mai pensato che ci possano essere altre ragioni perché chi si occupa di un sito (in questo caso io) possa avere bisogno di fare una cosa di questo tipo?

    Tanto per cominciare non è assolutamente mia intenzione "pilotare" né la navigazione da parte dell'utente, né il funzionamento del browser, ci mancherebbe!
    Sia per questo, sia perché lo script da me riportato è facilmente riproducibile da chiunque mastichi un minimo di javascript, non vedo perché si debba ritenere illecito postarlo.

    Premesso ciò, ti spiego volentieri il motivo di questa necessità.

    Da poco mi sto occupando di un sito (http://www.leisuredirection.co.uk) che in una sua sezione, dedicata ad un'azienda partner (http://www.leisuredirection.co.uk/eurotunnel l'azienda partner è la Eurotunnel) ha una pagina con un iframe centrale in cui vengono caricate pagine provenienti da un altro sito, http://www.intofrance.co.uk (che fa sempre parte della stessa azienda; viene usato questo sistema perché i contenuti - vacanze ecc - sono forniti dalla stessa società attraverso diversi siti; io mi occuperò della conversione del tutto in .net & webservices, che è una soluzione molto più elegante). Poiché appunto queste pagine sono provenienti da un altro sito, non è possibile includerle in altro modo che non sia quello di un iframe autoridimensionabile, come puoi vedere tu stesso. Il problema di cui all'oggetto di questo topic riguarda proprio questo iframe: naturalmente, se clicchi su uno dei qualunque link della pagina che punta al sito "esterno" (intendo www.intofrance.co.uk), la pagina richiesta viene caricata nell'iframe ed è tutto ok; ma se per una qualsiasi ragione l'utente apre il link in una nuova finestra (ovvero da "Open in a new window" attraverso il menu contestuale del tasto dx del mouse, oppure cliccando sul link con shift premuto), vedi in una popup solo il contenuto che andrebbe invece visto nell'iframe, il che è una cosa che vorrei evitare per ovvie ragioni.
    La soluzione che sto cercando è dunque quella di intercettare l'apertura del link in una nuova finestra, e caricarne la pagina nell'iframe in cui dovrebbe essere caricata invece che, appunto, in una nuova finestra, così da non visualizzare mai il layout privato di tutto..il contorno.
    Per questo motivo ho trovato come intercettare lo shift+click (e in maniera analoga come evitare di utilizzare la voce, con lo stesso effetto, del menu contestuale).

    Chiaro??

  6. #6
    Utente bannato
    Registrato dal
    Aug 2004
    Messaggi
    213
    Originariamente inviato da br1
    Mi imbatto sempre piu' spesso in richieste tendenti a modificare il normale funzionamento del browser... che e' un programma di proprieta' dell'utente il quale ha il sacrosanto diritto di pretendere che lo stesso faccia quello che si aspetta.
    Posso essere d'accordo con te su questo punto, ma soltanto in parte. Fino a prova contraria se un utente si collega ad un sito che offre un determinato servizio, l'applicazione, nei limiti ovviamente della sicurezza e della privacy, deve poter funzionare come richiesto, non alla cazzo di cane. In una normale applicazione Windows puoi dire di avere un qualunque controllo?????? Assolutamente no. Non vedo perché ci dobbiamo accanire contro quelle poverette delle applicazioni web se uno vuole far funzionare una applicazione in un certo modo (che fra l'altro, *bip*, mica crea problemi all'utente)

    - segnalare il malfunzionamento alla societa' che ha creato il browser;

    Quale malfunzionamento del browser?

    - inoltrare protesta all'amministratore del sito;
    Protesta de che?

    - cercare e diffondere un antidoto;


    - bannare il sito dal mio pc (anche configurando il firewall o aggiungendo una linea al file hosts);


    - varie ed eventuali


    Infine, da bravo moderatore che cerca di evitare fastidi all'amministratore del forum, tenterei di impedire che un simile script venga pubblicato in queste pagine e reso disponibile a tutti

    ciao

  7. #7
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Non mi pare di aver messo in dubbio le tue sacrosante ed (allora) ignote ragioni, ho solo detto, e ribadisco, che non mi pare lecito alterare il funzionamento dei programmi di proprieta' altrui, qualunque sia il fine.

    Ammettendo che tu abbia accesso al sorgente delle pagine ospitate nell'iframe, puoi adottare un metodo perfettamente legale: inserisci in ciascuna di esse lo script (reperibile nel forum) che ricrea il frameset ospitante qualora la pagina venga aperta fuori da esso.

    Mi spiace per le tue esigenze, ma penso che l'interesse della collettivita' superi quello del singolo.

    Per ulteriori scambi dei rispettivi punti di vista preferirei impiegare i pvt.

    ciao

    Edit: leggo ora il tuo ulteriore messaggio: se ritieni che io abbia leso un qualunque tuo diritto sei invitato a segnalarlo all'amministratore.
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Io non riesco a capire perche` uno vuole per forza usare strumenti lato client (cercando di forzare il browser a fare cose che non e` autorizzato a fare) per fare cose che lato server sarebbero perfettamente legali, semplici da realizzare e universali.

    Tieni presente che gli iframe sono deprecati (non sono ammessi nelle nuove versioni di XHTML e non funzioneranno nei browser di prossima generazione).
    Lo strumento lato client da usare e` il <div> (evenualmente in futuro potra` essere l' <object> ).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #9
    Utente bannato
    Registrato dal
    Aug 2004
    Messaggi
    213
    Originariamente inviato da br1
    cut
    Credo ci sia stato soltanto un malinteso, figurati

    Originariamente inviato da Mich_
    Io non riesco a capire perche` uno vuole per forza usare strumenti lato client (cercando di forzare il browser a fare cose che non e` autorizzato a fare) per fare cose che lato server sarebbero perfettamente legali, semplici da realizzare e universali.

    Tieni presente che gli iframe sono deprecati (non sono ammessi nelle nuove versioni di XHTML e non funzioneranno nei browser di prossima generazione).
    Lo strumento lato client da usare e` il <div> (evenualmente in futuro potra` essere l' <object> ).
    div? :master:
    come faccio ad inserire in un div il contenuto di un file proveniente da un altro sito?

    br, dimenticavo di rispondere in merito a questo punto: sì, posso accedere se necessario al codice dell'altro sito perché è sempre nostro, ma non ho capito bene il discorso del frameset

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Originariamente inviato da Yauchie
    div? :master:
    come faccio ad inserire in un div il contenuto di un file proveniente da un altro sito?
    Questo devi chiederlo nel forum che tratta il linguaggio che usi.

    Dal punto di vista teorico:
    il server si collega al sito, scarica la pagina, individua il pezzo che ti interessa e lo impacchetta in un <div> che include nella pagina che sta creando.
    Dal punto di vista pratico: non lo so (e comunque dipende dal linguaggio).


    Nota: potresti incappare in violazioni del copyright: vedi di avere l'autorizzazione a fare queste operazioni.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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 © 2024 vBulletin Solutions, Inc. All rights reserved.