Skip to content

Commit 504f1a3

Browse files
committed
transalted second part
1 parent 6e3a0ab commit 504f1a3

File tree

1 file changed

+47
-47
lines changed

1 file changed

+47
-47
lines changed

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

Lines changed: 47 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@ Le finestre a popup esistono da molto tempo. Lo scopo iniziale era quello di uti
1313

1414
Inoltre, i popup possono essere ingannevoli su dispositivi mobile, poiché non verranno mostrare più finestra contemporaneamente.
1515

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

1818
1. Un popup è una finestra separata con un suo ambiente JavaScript separato. Quindi l'apertura di un popup da un sito di terze parti, che potrebbe non essere affidabile, è un operazione sicura.
1919
2. E' molto semplice aprire un popup.
2020
3. Un popup può navigare (cambiare URL) ed inviare messaggi alla finestra che lo ha generato.
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 finestere di popup, per proteggere gli utenti.
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.
2525

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

@@ -56,7 +56,7 @@ Il popup si apre in Chrome, ma viene bloccato in Firefox.
5656
setTimeout(() => window.open('http://google.com'), 1000);
5757
```
5858

59-
La differenza sta nel fatto che Firefox tratta un timeout di 2000ms, o inferiore, come accettabile, qualsiasi valore che sia superiore verrà trattato come "inaffidabile", assumendo che un tale tiemeout is "fuori dall'azione dell'utente". Quindi nel primo caso il popup viene bloccato, mentre nel secondo no.
59+
La differenza sta nel fatto che Firefox tratta un timeout di 2000ms, o inferiore, come accettabile, qualsiasi valore che sia superiore verrà trattato come "inaffidabile", assumendo che un tale timeout sia "fuori dall'azione dell'utente". Quindi nel primo caso il popup viene bloccato, mentre nel secondo no.
6060

6161
## window.open
6262

@@ -116,11 +116,11 @@ Le regole applicate per le impostazioni omesse sono:
116116
- Se non viene fornito il terzo argomento alla funzione `open`, oppure è vuoto, allora vengono utilizzati i parametri di default della finestra.
117117
- Se viene fornita una stringa di parametri, ma vengono omesse proprietà di tipo `si/no`, allora verranno impostate di default a `no`. Quindi nel caso in cui forniste dei parametri, assicuratevi di impostarli esplicitamente a `yes`.
118118
- Se non vengono forniti i parametri `left/top`, allora il browser aprirà la nuova finestra vicino all'ultima aperta.
119-
- Se non vengono forniti i parametri `width/height`, allora il browser aprirà la nuova finestra con la stessa diemensione dell'ultima aperta.
119+
- Se non vengono forniti i parametri `width/height`, allora il browser aprirà la nuova finestra con la stessa dimensione dell'ultima aperta.
120120

121121
## Accedere al popup dalla finestra
122122

123-
L'invocazione di `open` torna un riferimento alla finestra appena aperta. Può quindi essereu utilizzato per manipolarne le proprietà, cambiarne la posizione e molto altro.
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.
124124

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

@@ -146,7 +146,7 @@ newWindow.onload = function() {
146146
};
147147
```
148148

149-
Da notare: nel momento immediatamente successivo a `window.open`, la nuova finestra non è ancora stata caricata. Lo abbiamo dimostrato tramite `alert` in riga `(*)`. Quindi dovremo attendere l'evento `onload`, prima di poter effetuare modifiche. Possiamo utilizzare anche l'handler `DOMContentLoaded` per `newWin.document`.
149+
Da notare: nel momento immediatamente successivo a `window.open`, la nuova finestra non è ancora stata caricata. Lo abbiamo dimostrato tramite `alert` in riga `(*)`. Quindi dovremo attendere l'evento `onload`, prima di poter effettuare modifiche. Possiamo utilizzare anche l'handler `DOMContentLoaded` per `newWin.document`.
150150

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).
@@ -176,7 +176,7 @@ Per chiudere una finestra di popup, possiamo utilizzare: `win.close()`.
176176

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

179-
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 fuzionerà solamente con le finestre a popup.
179+
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

181181
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à.
182182

@@ -191,87 +191,87 @@ newWindow.onload = function() {
191191
```
192192

193193

194-
## Moving and resizing
194+
## Riposizionamento e ridimensionamento
195195

196-
There are methods to move/resize a window:
196+
Abbiamo a disposizione metodi per il riposizionamento/ridimensionamente di una finestra:
197197

198198
`win.moveBy(x,y)`
199-
: Move the window relative to current position `x` pixels to the right and `y` pixels down. Negative values are allowed (to move left/up).
199+
: Muove la finestra rispetto alla posizione attuale, di `x` pixels a destra e `y` pixels verso il basso. Sono ammessi anche i valori negativi (per spostare a sinistra o verso l'alto).
200200

201201
`win.moveTo(x,y)`
202-
: Move the window to coordinates `(x,y)` on the screen.
202+
: Posiziona la finestra alle coordinate `(x,y)` sullo schermo.
203203

204204
`win.resizeBy(width,height)`
205-
: Resize the window by given `width/height` relative to the current size. Negative values are allowed.
205+
: Ridimensiona la finestra secondo i `width/height` forniti, rispetto alla dimensione attuale. Sono ammessi anche i valori negativi.
206206

207207
`win.resizeTo(width,height)`
208-
: Resize the window to the given size.
208+
: Ridimensiona la finestra secondo le dimensioni fornite.
209209

210-
There's also `window.onresize` event.
210+
Abbiamo a disposizione anche l'evento `window.onresize`.
211211

212-
```warn header="Only popups"
213-
To prevent abuse, the browser usually blocks these methods. They only work reliably on popups that we opened, that have no additional tabs.
212+
```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.
214214
```
215215

216-
```warn header="No minification/maximization"
217-
JavaScript has no way to minify or maximize a window. These OS-level functions are hidden from Frontend-developers.
216+
```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.
218218
219-
Move/resize methods do not work for maximized/minimized windows.
219+
I metodi di riposizionamento e ridimensionamento non hanno alcun effetto su finestre miniaturizzate o massimizzate.
220220
```
221221

222-
## Scrolling a window
222+
## Scorrere all'interno di una finestra
223223

224-
We already talked about scrolling a window in the chapter <info:size-and-scroll-window>.
224+
Abbiamo già affrontato l'argomento relativo allo scorrimento all'interno delle finestre nel capitolo <info:size-and-scroll-window>.
225225

226226
`win.scrollBy(x,y)`
227-
: Scroll the window `x` pixels right and `y` down relative the current scroll. Negative values are allowed.
227+
: Scorre la finestra di `x` pixels a destra e `y` pixels verso il basso, rispetto alla posizione attuale. Sono ammessi anche valori negativi.
228228

229229
`win.scrollTo(x,y)`
230-
: Scroll the window to the given coordinates `(x,y)`.
230+
: Scorre la finestra alle coordinate fornite `(x,y)`.
231231

232232
`elem.scrollIntoView(top = true)`
233-
: Scroll the window to make `elem` show up at the top (the default) or at the bottom for `elem.scrollIntoView(false)`.
233+
: Scorre la finestra fino a rendere `elem` visibile all'inizio della finestra (comportamento di default) o a fondo finestra con `elem.scrollIntoView(false)`.
234234

235-
There's also `window.onscroll` event.
235+
Abbiamo a disposizione anche l'evento `window.onscroll`.
236236

237-
## Focus/blur on a window
237+
## Focus/blur su una finestra
238238

239-
Theoretically, there are `window.focus()` and `window.blur()` methods to focus/unfocus on a window. And there are also `focus/blur` events that allow to catch the moment when the visitor focuses on a window and switches elsewhere.
239+
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-
Although, in practice they are severely limited, because in the past evil pages abused them.
241+
Anche se nella pratica questi metodi sono fortemente limitati, perché in passato pagine con scopi malevoli ne hanno abusato.
242242

243-
For instance, look at this code:
243+
Ad esempio, date un'occhiata al seguente codice:
244244

245245
```js run
246246
window.onblur = () => window.focus();
247247
```
248248

249-
When a user attempts to switch out of the window (`window.onblur`), it brings the window back into focus. The intention is to "lock" the user within the `window`.
249+
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-
So browsers had to introduce many limitations to forbid the code like that and protect the user from ads and evils pages. They depend on the browser.
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.
252252

253-
For instance, a mobile browser usually ignores `window.focus()` completely. Also focusing doesn't work when a popup opens in a separate tab rather than a new window.
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.
254254

255-
Still, there are some use cases when such calls do work and can be useful.
255+
Esistono però situazioni in cui l'utilizzo del focus è permesso e può tornare utile.
256256

257-
For instance:
257+
Ad esempio:
258258

259-
- When we open a popup, it's might be a good idea to run a `newWindow.focus()` on it. Just in case, for some OS/browser combinations it ensures that the user is in the new window now.
260-
- If we want to track when a visitor actually uses our web-app, we can track `window.onfocus/onblur`. That allows us to suspend/resume in-page activities, animations etc. But please note that the `blur` event means that the visitor switched out from the window, but they still may observe it. The window is in the background, but still may be visible.
259+
- Quando apriamo un popup, potrebbe essere una buona idea, invocare `newWindow.focus()`. In questo caso, su alcune combinazioni di OS/browser potrebbe funzionare ed assicurarci che l'utente si trovi nella nuova finestra.
260+
- Se vogliamo tracciare quando un utente utilizza la nostra web app, possiamo osservare gli eventi `window.onfocus/onblur`. Questo ci consente di sospendere/riprendere alcune azioni, come le animazioni. Da notare però che, l'evento di `blur` sta a significare che l'utente è uscito dal contesto della finestra, ma potrebbe continuare ad osservarla. La finestra è in background, ma potrebbe essere ancora visibile.
261261

262-
## Summary
262+
## Riepilogo
263263

264-
Popup windows are used rarely, as there are alternatives: loading and displaying information in-page, or in iframe.
264+
Le finestre di popup vengono utilizzate raramente, ad oggi esistono diverse alternative: caricare e mostrare informazioni direttamete in pagina, oppure utilizzare un iframe.
265265

266-
If we're going to open a popup, a good practice is to inform the user about it. An "opening window" icon near a link or button would allow the visitor to survive the focus shift and keep both windows in mind.
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.
267267

268-
- A popup can be opened by the `open(url, name, params)` call. It returns the reference to the newly opened window.
269-
- Browsers block `open` calls from the code outside of user actions. Usually a notification appears, so that a user may allow them.
270-
- Browsers open a new tab by default, but if sizes are provided, then it'll be a popup window.
271-
- The popup may access the opener window using the `window.opener` property.
272-
- The main window and the popup can freely read and modify each other if they have the same origin. Otherwise, they can change location of each other and [exchange messages](info:cross-window-communication).
268+
- Una finestra di popup può essere aperto con l'invocazione di `open(url, name, params)`. Questa tornerà il riferimento alla nuova pagina aperta.
269+
- 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).
273273

274-
To close the popup: use `close()` call. Also the user may close them (just like any other windows). The `window.closed` is `true` after that.
274+
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

276-
- Methods `focus()` and `blur()` allow to focus/unfocus a window. But they don't work all the time.
277-
- Events `focus` and `blur` allow to track switching in and out of the window. But please note that a window may still be visible even in the background state, after `blur`.
276+
- I metodi `focus()` e `blur()` permettono di innescare focus/unfocus su una finestra. Ma non funzionano in tutti i casi.
277+
- Gli eventi `focus` e `blur` consentono di tracciare i cambi di contesto di una finestra. Ma tenete a mente che una finestra, dopo l'evento di `blur`, potrebbe continuare ad essere visibile anche se si trova in background.

0 commit comments

Comments
 (0)