Ciao a tutti, ho una pagina che contiene un iframe di cui conosco id e name. Esiste un modo in js o simili per capire se il focus è posizionato all'interno di questo elemento (o di un suo figlio) oppure se è all'esterno?
Ciao a tutti, ho una pagina che contiene un iframe di cui conosco id e name. Esiste un modo in js o simili per capire se il focus è posizionato all'interno di questo elemento (o di un suo figlio) oppure se è all'esterno?
Se la pagina caricata dal iframe è di un sito esterno al tuo, non è possibile.
![]()
Cavicchi Andrea
Problemi con javascript, jquery, ajax clicca qui
No, l'iframe è settato come "contenteditable" quindi dovrei poter accedere. Sbaglio?
Penso che sia ininfluente, e comunque riflettendo sulla tua domanda l'evento focus non è verificabile a prescindere che sia interno o esterno al tuo dominio.
![]()
Cavicchi Andrea
Problemi con javascript, jquery, ajax clicca qui
Provo a spiegarti il mio problema, magari c'è una soluzione alternativa. Ho un iframe in cui l'utente può inserire del testo, e tramite dei bottoni anche dei tag HTML (a, img...)
Per inserire il testo sto usando questo script:
Ma ho il seguente problema, se l'utente non seleziona prima l'iframe ho un errore. Invece io vorrei una cosa del tipo. Se il focus non è settato, scrivi nel iframe.codice:function insertAtCursor(iframename, text, replaceContents) { if(replaceContents==null) {replaceContents=false;} if(!replaceContents) { sel = document.getElementById(iframename).contentWindow.getSelection(); sel.collapseToStart(); document.getElementById(iframename).contentWindow.document.execCommand('insertHTML', false, text); } else { document.getElementById(iframename).contentWindow.document.execCommand('insertHTML', false, text); } }
é possibile?
Fermo restando che c'ho capito veramente poco credo che l'unica possibilità sia che quando apri/lanci iframe forzi il forus su un campo text/textarea/hidden (che sono gli unici campi che permetto il focus) sempre che la pagina che apri nel iframe sia del tuo dominio se è un dominio esterno questo non è possibile.![]()
Cavicchi Andrea
Problemi con javascript, jquery, ajax clicca qui
Diciamo che bastava controllare se la variabile è piena o no
codice:function insertAtCursor(iframename, text, replaceContents) { if(replaceContents==null) {replaceContents=false;} sel = document.getElementById(iframename).contentWindow.getSelection(); if(sel.length>0) { if(!replaceContents) { sel.collapseToStart(); document.getElementById(iframename).contentWindow.document.execCommand('insertHTML', false, text); } else {document.getElementById(iframename).contentWindow.document.execCommand('insertHTML', false, text);} } else { //scrittura forzata su iframe } }