Skip to content

Commit 0f55b61

Browse files
longo-andreapasor1
andauthored
Apply suggestions from code review
Co-authored-by: Simone Pasini <66781510+pasor1@users.noreply.github.com>
1 parent 504f1a3 commit 0f55b61

File tree

1 file changed

+30
-30
lines changed

1 file changed

+30
-30
lines changed

3-frames-and-windows/01-popup-windows/article.md

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
# Metodi per popups and window
1+
# Metodi di popups e window
22

3-
L'apertura di una finestra di popup è uno dei metodi più antichi utilizzato per mostrare ulteriori pagine all'utente.
3+
L'apertura di una finestra popup è uno dei metodi più vecchi, utilizzato per mostrare pagine aggiuntive all'utente.
44

55
Crearne una è molto banale:
66
```js
77
window.open('https://javascript.info/')
88
```
99

10-
...Il codice visto sopra aprirà una nuova finestra all URL fornito. La maggior parte dei browser moderni aprirà l'url in un'altra tab piuttosto che aprire una nuova finestra.
10+
...Il codice visto sopra aprirà una nuova finestra all'indirizzo URL fornito. La maggior parte dei browser moderni aprirà l'url in un'altro tab piuttosto che in una nuova finestra.
1111

12-
Le finestre a popup esistono da molto tempo. Lo scopo iniziale era quello di utilizzarle per mostrare del contenuto aggiuntivo senza dover chiudere la finestra principale. Ad oggi, esistono altri modi per farlo: ad esempio, possiamo caricare il contenuto dinamicamente utilizzando [fetch](info:fetch) e mostrando il contenuto in un `<div>` generato dinamicamente. Quindi, i popup, non sono una cosa che utilizziamo molto spesso.
12+
Le finestre popup esistono da molto tempo. Lo scopo iniziale era quello di utilizzarle per mostrare del contenuto aggiuntivo senza dover chiudere la finestra principale. Ad oggi, esistono altri modi per farlo: ad esempio, possiamo caricare il contenuto dinamicamente utilizzando [fetch](info:fetch) e mostrando il contenuto in un `<div>` generato dinamicamente. Quindi, i popup, non sono una cosa che utilizziamo molto spesso.
1313

14-
Inoltre, i popup possono essere ingannevoli su dispositivi mobile, poiché non verranno mostrare più finestra contemporaneamente.
14+
Inoltre, i popup possono essere ingannevoli su dispositivi mobile, poiché questi non mostrano più finestre contemporaneamente.
1515

1616
Ciononostante, esistono alcune applicazioni in cui i popup sono ancora utilizzati, e.g. per il login OAuth (login con Google/Facebook/...), perché:
1717

@@ -21,7 +21,7 @@ Ciononostante, esistono alcune applicazioni in cui i popup sono ancora utilizzat
2121

2222
## Blocco dei popup
2323

24-
In passato, i siti con scopi maligni, abusavano dei popup. Una pagina con pessimi intenti, poteva aprire decine di finestre di ads. Per questo motivo, molti browser moderni tendono a bloccare le finestre di popup, per proteggere gli utenti.
24+
In passato, i siti con scopi malevoli, abusavano dei popup. Una pagina con pessimi intenti, poteva aprire decine di finestre di ads. Per questo motivo, molti browser moderni tendono a bloccare le finestre popup, per proteggere gli utenti.
2525

2626
**Molti browser bloccano i popup se questi vengono invocati da eventi non generati da utente. Un evento permesso è quello di `onclick`.**
2727

@@ -36,9 +36,9 @@ button.onclick = () => {
3636
};
3737
```
3838

39-
In questo modo gli utenti sono protetti. almeno parzialmente, dai popup indesiderati, ma allo stesso tempo la funzionalità di popup non viene completamente disattivata.
39+
In questo modo gli utenti sono parzialmente protetti dai popup indesiderati, ma allo stesso tempo la funzionalità di popup non viene completamente disattivata.
4040

41-
Cosa accadrebbe nel caso in cui un popup viene aperto in seguito ad un evento di `onclick`, ma dopo un `setTimeout`? Questa domanda può essere ingannevole.
41+
Cosa accadrebbe nel caso in cui un popup venisse aperto in seguito ad un evento di `onclick`, ma dopo un `setTimeout`? Questa domanda può essere ingannevole.
4242

4343
Provate voi stessi questo codice:
4444

@@ -100,7 +100,7 @@ open('/', 'test', params);
100100

101101
In questo esempio, molte delle "caratteristiche della finestra" sono disabilitate e la finestra viene posizionata fuori dallo schermo. Provate ad eseguirla per vedere cosa accade. La maggior parte dei browser sistemerà "le proprietà stane", come ad esempio il valore zero per `width/height` ed il posizionamento fuori dallo schermo impostato con `left/top`. Ad esempio, Chrome aprirà questa finestra a dimensione massima, in modo tale che questa occupi l'intero schermo.
102102

103-
Proviamo ora ad aggiungere delle opzioni di posizionamento impstando `width`, `height`, `left`, `top` con valori ragionevoli:
103+
Proviamo ora ad aggiungere delle opzioni di posizionamento impostando `width`, `height`, `left`, `top` con valori ragionevoli:
104104

105105
```js run
106106
let params = `scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no,
@@ -109,7 +109,7 @@ width=600,height=300,left=100,top=100`;
109109
open('/', 'test', params);
110110
```
111111

112-
La maggior parte dei browser mostrerà l'esempio sopra esattamente con i parametri come richiesti.
112+
La maggior parte dei browser mostrerà l'esempio sopra esattamente come richiesto.
113113

114114
Le regole applicate per le impostazioni omesse sono:
115115

@@ -120,7 +120,7 @@ Le regole applicate per le impostazioni omesse sono:
120120

121121
## Accedere al popup dalla finestra
122122

123-
L'invocazione di `open` torna un riferimento alla finestra appena aperta. Può quindi essere utilizzato per manipolarne le proprietà, cambiarne la posizione e molto altro.
123+
L'invocazione di `open` ritorna un riferimento alla finestra appena aperta. Può quindi essere utilizzato per manipolarne le proprietà, cambiarne la posizione e molto altro.
124124

125125
In questo esempio, generiamo del contenuto per il popup tramite JavaScript:
126126

@@ -151,14 +151,14 @@ Da notare: nel momento immediatamente successivo a `window.open`, la nuova fines
151151
```warn header="Politica della stessa origine"
152152
Le finestre possono accedere liberamente al contenuto delle altre, ma solamente se queste appartengono alla stessa origine (lo stesso protocol://domain:port).
153153
154-
Ad esempio, nel caso in cui il dominio della finestra principale sia `site.com`, mentre quello del popup sia `gmail.com`, allora l'accesso contenuto di quest'ultima non è permesso, per questioni di sicurezza. Per maggiori dettagli, vedi il capitolo <info:cross-window-communication>.
154+
Ad esempio, nel caso in cui il dominio della finestra principale sia `site.com`, mentre quello del popup sia `gmail.com`, allora l'accesso al contenuto di quest'ultima non è permesso per questioni di sicurezza. Per maggiori dettagli, vedi il capitolo <info:cross-window-communication>.
155155
```
156156

157157
## Accedere alla finestra dal popup
158158

159-
Un popup può accedere alla finestra che lo ha generato, utilizzando il riferimento `window.opener`. Il quale è impostato a `null` per tutte le finestre ad eccezione di quelle di popup.
159+
Un popup può accedere alla finestra che lo ha generato, utilizzando il riferimento `window.opener`, il quale è impostato a `null` per tutte le finestre ad eccezione di quelle di popup.
160160

161-
Se provate ad eseguire il codice qui sotto, vederte che il contenuto di questa pagina (pagina principale) verrà sostituito con la stringa "Test":
161+
Se provate ad eseguire il codice qui sotto, vedrete che il contenuto della pagina principale (opener) verrà sostituito con la stringa "Test":
162162

163163
```js run
164164
let newWin = window.open("about:blank", "hello", "width=200,height=200");
@@ -168,17 +168,17 @@ newWin.document.write(
168168
);
169169
```
170170

171-
Quindi la connesione tra le finestre è bidirezionale: sia la pagina principale che quella di popup, possiedono entrambe dei riferiementi.
171+
Quindi la connessione tra le finestre è bidirezionale: sia la pagina principale che quella popup possiedono un riferimento l'una dell'altra.
172172

173173
## Chiudere un popup
174174

175-
Per chiudere una finestra di popup, possiamo utilizzare: `win.close()`.
175+
Per chiudere una finestra popup, possiamo utilizzare: `win.close()`.
176176

177177
Invece, per verificare se una finestra è chiusa possiamo utilizzare: `win.closed`.
178178

179179
Tecnicamente, il metodo `close()` è disponibile su tutte le finestre, ma nella pratica, `window.close()` viene ignorato dalla maggior parte dei browser se la finestra non è stata creata tramite un comando esplicito di `window.open()`. Quindi funzionerà solamente con le finestre a popup.
180180

181-
La proprietà `closed` vale `true` se la finestra è chiusa. Questa risulta essere molto utile per verificare se il popup (oppure la finestra principale) è ancora aperto. Un utente potrebbe chiudere la finestra di popup in qualsiasi istante, ed il nostro codice dovrà essere pronto a gestire tale eventualità.
181+
La proprietà `closed` vale `true` se la finestra è chiusa. Questa risulta essere molto utile per verificare se il popup (oppure la finestra principale) è ancora aperto. Un utente potrebbe chiudere la finestra popup in qualsiasi istante, ed il nostro codice dovrà essere pronto a gestire tale eventualità.
182182

183183
Il codice qui sotto, carica una finestra e la chiude immediatamente
184184
```js run
@@ -202,21 +202,21 @@ Abbiamo a disposizione metodi per il riposizionamento/ridimensionamente di una f
202202
: Posiziona la finestra alle coordinate `(x,y)` sullo schermo.
203203

204204
`win.resizeBy(width,height)`
205-
: Ridimensiona la finestra secondo i `width/height` forniti, rispetto alla dimensione attuale. Sono ammessi anche i valori negativi.
205+
: Ridimensiona la finestra secondo i parametri `width/height` forniti, rispetto alla dimensione attuale. Sono ammessi anche i valori negativi.
206206

207207
`win.resizeTo(width,height)`
208208
: Ridimensiona la finestra secondo le dimensioni fornite.
209209

210210
Abbiamo a disposizione anche l'evento `window.onresize`.
211211

212212
```warn header="Solamente i popup"
213-
Per prevenire qualsiasi abuso di queste funzionalità, il browser solitamente blocca questi metodi. Questi infatti funzioneranno come atteso solamente con le finestre di popup che apriremo, le quali non hanno altre tab.
213+
Per prevenire qualsiasi abuso di queste funzionalità, il browser solitamente blocca questi metodi. Questi infatti funzioneranno come atteso solamente con le finestre popup aperte dall'utente e che non hanno altri tabs.
214214
```
215215

216216
```warn header="Non è possibile miniaturizzare/massimizzare"
217-
JavaScript non ha la possibilità di miniaturizzare o massimizzare una finestra. Queste funzionalità a livello di OS (Sistema Operativo) sono nascoste agli sviluppatori frontend.
217+
JavaScript non ha la possibilità di minimizzare o massimizzare una finestra. Queste funzionalità a livello di OS (Sistema Operativo) sono nascoste agli sviluppatori frontend.
218218
219-
I metodi di riposizionamento e ridimensionamento non hanno alcun effetto su finestre miniaturizzate o massimizzate.
219+
I metodi di riposizionamento e ridimensionamento non hanno alcun effetto su finestre minimizzate o massimizzate.
220220
```
221221

222222
## Scorrere all'interno di una finestra
@@ -238,7 +238,7 @@ Abbiamo a disposizione anche l'evento `window.onscroll`.
238238

239239
Teoricamente, avremmo a disposizione i metodi `window.focus()` e `window.blur()` per innescare il focus/unfocus su una finestra. E anche gli eventi `focus/blur` che ci permettono di verificare il momento in cui un utente entra in una finestra(focus) o la abbandona(blur).
240240

241-
Anche se nella pratica questi metodi sono fortemente limitati, perché in passato pagine con scopi malevoli ne hanno abusato.
241+
Comunque, nella pratica, questi metodi sono fortemente limitati, perché in passato pagine con scopi malevoli ne hanno abusato.
242242

243243
Ad esempio, date un'occhiata al seguente codice:
244244

@@ -248,9 +248,9 @@ window.onblur = () => window.focus();
248248

249249
Quando un utente tenta di abbandonare la finestra (`window.onblur`), questo riporta la finestra in focus. Lo scopo è quello di bloccare l'utente all'interno della finestra.
250250

251-
Quindi i browser hanno dovuto introdurre molte limitazioni per evitare codici come quello appena visto e proteggere l'utente da pubblicità e pagine malevole. Queste limitazioni so diverse di browser in browser.
251+
Quindi i browser hanno dovuto introdurre molte limitazioni per evitare codice come quello appena visto e proteggere l'utente da pubblicità e pagine malevole. Queste limitazioni so diverse di browser in browser.
252252

253-
Ad esempio, un browser mobile solitamente ignora completamente `window.focus()`. Inoltre il focus, non funziona nemmeno quando apriamo il popup in una nuova tab piuttosto che in una nuova finestra.
253+
Ad esempio, un browser mobile solitamente ignora completamente `window.focus()`. Inoltre il focus, non funziona nemmeno quando apriamo il popup in un nuovo tab piuttosto che in una nuova finestra.
254254

255255
Esistono però situazioni in cui l'utilizzo del focus è permesso e può tornare utile.
256256

@@ -261,15 +261,15 @@ Ad esempio:
261261

262262
## Riepilogo
263263

264-
Le finestre di popup vengono utilizzate raramente, ad oggi esistono diverse alternative: caricare e mostrare informazioni direttamete in pagina, oppure utilizzare un iframe.
264+
Le finestre popup vengono utilizzate raramente, ad oggi esistono diverse alternative: caricare e mostrare informazioni direttamente in pagina, oppure utilizzare un iframe.
265265

266-
Se la nostra intenzione è quella di aprire una finestra a popup, una buona pratica è di informare prima l'utente. Un icona di "apertura nuova finestra" vicino al link o al bottone può aiutare l'utente a "sopravvivere" al cambio contesto, mantentendo a mente entrambe le finestre.
266+
Se la nostra intenzione è quella di aprire una finestra popup, una buona pratica è di informare prima l'utente. Un icona di "apertura nuova finestra" vicino al link o al bottone può aiutare l'utente a "sopravvivere" al cambio contesto, mantenendo a mente entrambe le finestre.
267267

268-
- Una finestra di popup può essere aperto con l'invocazione di `open(url, name, params)`. Questa tornerà il riferimento alla nuova pagina aperta.
268+
- Una finestra popup può essere aperta con l'invocazione di `open(url, name, params)`. Questa ritornerà il riferimento alla nuova pagina aperta.
269269
- I browser bloccano il metodo `open` se non invocato da un'azione diretta dell'utente. Solitamente, viene mostrata una notifica, in modo che l'utente possa rifiutare/acconsentire.
270-
- I browser di default aprono una nuova tab, ma se vengono fornite delle dimensioni, allora verrà aperta una nuova finestra.
271-
- La finestra di popup può accedere alla finestra che l'ha aperte tramite la proprietà `window.opener`.
272-
- La finestra principale e quella di popup possono interagire liberamente, se queste appartengono alla stessa origine. Altrimenti, possono solamente modificarne la posizione e [scambiarsi messaggi](info:cross-window-communication).
270+
- I browser di default aprono un nuovo tab, ma se vengono fornite delle dimensioni, allora verrà aperta una nuova finestra.
271+
- La finestra popup può accedere alla finestra che l'ha aperta, tramite la proprietà `window.opener`.
272+
- La finestra principale e quella popup possono interagire liberamente, se appartengono alla stessa origine. Altrimenti, possono solamente modificarne la posizione e [scambiarsi messaggi](info:cross-window-communication).
273273

274274
Per chiudere un popup: utilizziamo il metodo `close()`. Anche l'utente può chiuderlo manualmente (come qualsiasi altra finestra). La proprietà `window.closed` assumerà il valore `true`, dopo la chiusura della finestra.
275275

0 commit comments

Comments
 (0)