Domanda

Vorrei avere un comportamento alternativo durante un foglio di stile di stampa su una pagina web. Qualcosa del genere:

  

Se questa pagina viene stampata, non farlo   preoccuparsi di chiamare SWFObject per convocare un   .swf in esistenza. Basta lasciare il   HTML che Flash sostituirà.

Ho provato cose come impostare un elemento noto su uno stile noto che esiste per lo schermo ma non per il foglio di stile di stampa. Ma ottenere uno "stile" tramite Javascript non ottiene uno stile calcolato .

Riepilogo: in un modo cross-browser, è possibile dire quale foglio di stile è attivo?

È stato utile?

Soluzione

Sembra che tu sia confuso che i fogli di stile di stampa vengano utilizzati quando visualizzi una pagina adatta alla stampante, ma non è così. Un foglio di stile di stampa non viene applicato fino a quando l'utente non invia effettivamente la pagina alla stampante. A questo punto, qualsiasi javascript che verrà eseguito è già terminato.

Quello che vuoi fare è mettere l'oggetto SWFO in un contenitore div e avere il contenitore in stile display: none; per il supporto di stampa.

Altri suggerimenti

È possibile utilizzare JavaScript per accedere ai fogli di stile nel documento e quindi verificare se il foglio di stile "Stampa" è attivo. Una volta determinato quale CSS è attivo, puoi gestire i tuoi contenuti.

La funzione getActiveStyleSheet sarebbe simile a questa:

function getActiveStyleSheet() 
{
    var i, a;

    for (i = 0; (a = document.getElementsByTagName("link")[i]); i++) 
    {
        if (a.getAttribute("rel").indexOf("style") != -1
         && a.getAttribute("title")
         && !a.disabled) 
            return a.getAttribute("title");
    }

    return null;
}

Puoi trovare il codice qui: http://www.alistapart.com/articles/alternate / .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top