Stile iframe

Aperto da Flavio93Zena, Domenica - 15 Luglio 2018 - 15:17

0 Utenti e 1 Visitatore stanno visualizzando questa discussione.

Flavio93Zena

Sto impazzendo cercando di applicare degli stili ad un iframe...
Lo scenario è una pagina a sé aggiunta con questa http://custom.simplemachines.org/mods/index.php?mod=2604 e voglio aggiungere un iframe (fatto), applicandoci degli stili (interni all'iframe - relativi al contenuto stesso dell'iframe - no, il sito dell'iframe non è sotto il mio controllo).
NIENTE link a stackoverflow o roba del genere, sono due giorni che ci giro e non ci si capisce un *****, uno che dice una cosa, altri che dicono un'altra e via discorrendo.
Per cui... Come potrei fare? Grazie in anticipo :/

emanuele

Da che mi ricordo, non è possibile applicare css al contenuto di un iframe.
L'unica soluzione (possibile, non ricordo se sia effettivamente fattibile) potrebbe essere usare javascript per iniettare o un file css, o un tag style nella pagina dell'iframe.

Flavio93Zena

Sì infatti, sto chiedendo proprio come fare per quello perchè le soluzioni che ho trovato sono tutte diverse e non si capisce una mazza :/
Conta che io nella pagina posso inserire solo HTML (per cui credo javascript riesca ad iniettarsi da lì? Diversamente lo infilerei nel template)...

emanuele

Beh, la tua domanda iniziale non diceva niente a tal proposito, quindi non sapevo a che punto fossi. ;)
Considerando non vuoi link a stackoverflow e io non ho voglia di scrivere javascript, il massimo che posso suggerire è: se mi ricordo cosa feci in passato, hai 2 problemi da fronteggiare:
1) devi catturare prima l'iframe e poi il suo contenuto (quindi prima qualcosa tipo document.getElementsByTagName('iframe')[0] (do note non son sicuro getElementsByTagName sia una vera funzione),
2) inserire il javascript nell'head della pagina catturata nell'iframe (e questo mi ricordo era un po' un casino).

... poi chissenefrega di quello che tu vuoi o non vuoi. :P

https://stackoverflow.com/questions/6960406/add-css-to-iframe
Questa è sostanzialmente la procedura che mi sembra di ricordare, ci sono le due problematiche che mi ricordo, più una terza che sicuramente è venuta fuori nel tempo ovvero la same-origin policy, anche se questa dovrebbe toccare l'inserimento del iframe stesso, non tanto lo styling.

Darknico

Anche io in passato ho dovuto agire in un iframe e confermo che l'unica è via js.
La soluzione su stack è quella corretta, se non ricordo male, sono passati un po' di anni da quando mi era servito..
Non supporto privatamente, non risponderei e ci rimarreste male....

aslupin3

E se provassi una via lato server? Sempre che le connessioni esterne siano possibili.

Catturare la pagina con file_get_contents() e quindi riproporre il contenuto della pagina potendo variare quello che vuoi.

emanuele

Sì, avevo pensato anch'io a questa, però ha due punti deboli:
1) il fetch verrà fatto sempre e solo da un IP, se il sito di destinazione si accorge blocca l'IP e la soluzione è andata,
2) sarebbe comunque bene caricarlo via javascript perché altrimenti bloccheresti il caricamento della pagina fino a che l'altro server non ha risposto al primo.

Flavio93Zena

Citazione di: aslupin3 il Mercoledì - 18 Luglio 2018 - 13:45
E se provassi una via lato server? Sempre che le connessioni esterne siano possibili.

Catturare la pagina con file_get_contents() e quindi riproporre il contenuto della pagina potendo variare quello che vuoi.
Illegale, perchè sarebbe come fare da host per la pagina, con copyright annesso.

La velocità del caricamento non è un problema, ma se funzionasse sarebbe meglio, qualsiasi cosa aggiunga non gliene frega nulla, come se non esistesse senza errori in console. (Forse perchè avevo già anche provato le soluzioni di stackoverflow, senza che funzionassero).

aslupin3

Citazione di: Flavio93Zena il Giovedì - 19 Luglio 2018 - 04:43
Illegale, perchè sarebbe come fare da host per la pagina, con copyright annesso.

Su questo, andrebbe rivista tutta la procedura. qualcunque modifica alla pagina origiraria NON autorizzata è illegale, sia essa solo di forma che nel contenuto.

Flavio93Zena

Hmm, oserei dire che fintanto che mantengo il logo e l'adsense della pagina stessa non dovrei avere problemi.
Ad ogni modo </argomento legalità> please :)

emanuele

Beh, sei tu che hai sollevato la questione. :P
Ad ogni modo gli iframe sono pain per tre ragioni:
1) legalità,
2) sicurezza (il contenuto dell'iframe potrebbe iniettare javascript nella parent page)
3) sicurezza (per evitare i punti 1 e 2 i browser hanno introdotto varie limitazioni come il same-origin, può anche essere che javascript non riesce più ad accedere liberamente al contenuto dei frame, onestamente è una vita che non ci provo).

Discussioni simili (3)