Artikel-Schlagworte: "Unauffällig"


Dezente Flash-Objekte

Das Einfügen von Objekten (vor allem Flash-Objekte) in Web-Seiten hat sich zu einem oft stressigen in letzter Zeit. In anderen Beiträgen haben wir bereits das Thema, wie man Flash-Seiten einfügen und entsprechend erkennen gerichtet. Als wir diskutierten Techniken Unauffällig, markieren wir zwei bekannte Skript erkennen kann (und schließlich zu installieren) und legen Sie Flash-Objekte auf einer Seite, in einer sehr unauffällig und afficiente: SWFObject und UFO .
Beide Skripte haben im Wesentlichen die gleichen Eigenschaften und identischen Betrieb. Der Ansatz ist, um es von einem gewissen musst JavaScript-Tag mit der Flash-Inhalte zu ersetzen. Wie wir wissen, beseitigt dieses Verfahren das Problem der Aktivierung des Flash-Objekt, indem Internet Explorer auferlegt, jedoch impliziert, dass Javascript auf dem Ziel-Browser aktiviert sein.
Beide Skripte verwenden Sie keine externen Bibliotheken wie prototype.js zum Beispiel. Der wichtigste Unterschied zwischen beiden ist, dass SWFObject aufgerufen wird, wenn die TAG ersetzt werden bereits auf der Seite geladen, nicht genau, wie unauffällig. Hier ist ein Auszug von Code, der den Aufruf-Sequenz zeigt:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
"flashcontent" > < div id = "flashcontent">
strong > < stark > Sie müssen Ihren Flash Player aktualisieren </ stark >
Dies wird durch den Flash-Inhalt ersetzt.
Zeigen Sie alternativen Inhalt hier und Anwender ohne Flash-Plugin oder mit
Javascript ausgeschaltet wird dies zu sehen. > noscript < / code > Inhalt hier können Sie weglassen < Code inline = "true"> noscript </ code >
Tags. "swfobject.html?detectflash=false" > bypass the detection < / a > if you wish. Binden Sie einen Link auf < ein href = "swfobject.html? detectflash = false"> umgehen die Erkennung </ ein > wenn Sie möchten.
</ div >
"text/javascript" > < script type = "text / javascript">
/ / <! [CDATA [
, "sotester" , "300" , "300" , "9" , "#FF6600" ) ; var so = new SWFObject ("so_tester.swf", "sotester", "300", "300", "9", "# FF6600");
) ; // this line is optional, but this example uses the variable and displays this text inside the flash movie so.addVariable ("flashVarText", "dies ist in über FlashVars zum Beispiel nur bestanden") / / Diese Zeile ist optional, aber dieses Beispiel wird die Variable zu und zeigt diesen Text innerhalb des Flash-Films
; so.write ("flashcontent");
/ /]]>
</ script >

UFO , dennoch erlaubt un'approccio viel mehr im Einklang mit der klassischen Unauffällig Skript. Der Ersatz der TAG ist im transparenten Modus, ohne abbligare Laden Sequenzen, wie im folgenden Beispiel:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
< Kopf >
title > < title > Unauffällig Flash-Objekte (UFO) | Sample Page </ title >
"Content-Type" content = "text/html; charset=iso-8859-1" / > < meta http-equiv = "Content-Type" content = "text / html; charset = iso-8859-1" />
"text/javascript" src = "ufo.js" >< / script > < script type = "text / javascript" src = "ufo.js"> </ script >
"text/javascript" > < script type = "text / javascript">
var FO = {movie: "test8.swf", Breite: "300", Höhe: "120", MajorVersion: "12", build: "0", xi: "true"};
UFO.create (FO, "ufoDemo");
</ script >
</ Kopf >
< Körper >
"ufoDemo" > < div id = "ufoDemo">
p > < p > Ersatz Inhalt </ p >
"border: none;" / >< / a >< / p > Macromedia Flash Player "style =" border: none; "/> </ ein > </ p >
</ div >
</ Körper >

Im Quellcode des Skripts von UFOs in der Tat, können Sie sofort verwenden - besser geeignet - ein Ereignis, das aufmerksam auf die Seite vollständig geladen werden, bevor der Ersatz ist daher viel sinnvoller Ansatz, um nicht aufdringlich Skript.

Mehr ...

Unauffällig Javascript: Pseudo-Echtzeit &

In diesem Beitrag möchte ich die Verwendung von Skripts unaufdringlich aus der Sicht des Web-Designer zu analysieren. Normalerweise wird in der Tat ein Skript, das nicht gegen das Ende des Navigators intrusive!
Aber es kann auch gut sein für die Web-Designer?

JavaScript unauffällig aus der Sicht der Webdesigner

Sich in die Schuhe eines Web-Designer identifizieren konnten zwei Kategorien von unaufdringliche Javascript: Unauffällig Javascript wahren und Pseudo unaufdringlich JavaScript.

Beide Kategorien sind jedoch nicht vollständig nicht-intrusive (immer aus der Sicht des Web-Designer). Eine echte und vollständige unaufdringlich JavaScript sollten keine Maßnahmen ergreifen, auf der Webseite, aber das ist - vorerst - im Grunde unmöglich. Die minimale Operation während der Installation eines Skripts braucht jedoch die Einbeziehung der Aufnahme des Skripts selbst! So ist der Betrieb zulässig, dass - tatsächlich - es muss nicht erzwingen, dass der Web-Designer zu regelmäßigen Anpassungen der Struktur der Seite zu machen. Die einfache Positionierung der Einbeziehung des script-Tags im head kann dann als non-intrusive werden.

Der wahre unaufdringlich JavaScript

Die Skripte dieser Art sind diejenigen, die nur die Einbeziehung des Skripts unauffällig und nicht verlangen, behaupten kein anderer Betrieb! Script dieser Art sind zum Beispiel (die übliche und zitierten), ausrichten . Sobald Sie den Code eingegeben gehören die Web-Designer müssen nicht nehmen alle weiteren Betrieb, da das Skript Snap arbeitet auf Standard-Tags.

Die Pseudo unaufdringlich JavaScript

Diese unterscheiden sich von den vorherigen, da sie erfordern eine weitere Tagging richtig zu funktionieren. Beispiele dieser Art sind Control.Tabs von Ryan Johnson oder Bibliothek für Slideshow Lightbox JS . per identificare i link che devono essere modificati. Lightbox JS , in particolare, richiede addirittura la presenza esplicita sia di Prototype che di Scriptaculous . Die letztere Lösung, zum Beispiel, erfordert die Aufnahme in den Tag A Attribut rel auf Links, die angepasst werden müssen, zu identifizieren. LightboxJS , insbesondere, erfordert auch das Vorhandensein von sowohl explizite Prototype , dass der Scriptaculous . Wie auf der Website angegeben LightboxJS , sollte die Einbeziehung der Skript wie folgt aussehen:

1
2
3
"text/javascript" src = "js/prototype.js" >< / script > < script type = "text / javascript" src = "js / prototype.js"> </ script >
"text/javascript" src = "js/scriptaculous.js?load=effects" >< / script > < script type = "text / javascript" src = "js / scriptaculous.js? Last = Effekte"> </ script >
"text/javascript" src = "js/lightbox.js" >< / script > < script type = "text / javascript" src = "js / lightbox.js"> </ script >

Die Links, die auf un'immmagine Sie wollen das System mit ansehen LightboxJS sollte wie folgt geschrieben werden:

1
"images/image-1.jpg" rel = "lightbox" title = "my caption" > image #1 < / a > < ein href = "images/image-1.jpg" rel = "lightbox" title = "Mein Titel"> Bild # 1 </ eins >

Neben der Identifizierung einer Gruppe von Bildern, um die Fähigkeit, vorwärts und rückwärts blättern Bilder hinzuzufügen, die Tag- A muss wie folgt eingestellt werden:

1
2
3
"images/image-1.jpg" rel = "lightbox[roadtrip]" > image #1 < / a > < ein href = "images/image-1.jpg" rel = "lightbox [Roadtrip]"> Bild # 1 </ eins >
"images/image-2.jpg" rel = "lightbox[roadtrip]" > image #2 < / a > < ein href = "images/image-2.jpg" rel = "lightbox [Roadtrip]"> Bild # 2 </ eins >
"images/image-3.jpg" rel = "lightbox[roadtrip]" > image #3 < / a > < ein href = "images/image-3.jpg" rel = "lightbox [Roadtrip]"> Bild # 3 </ eins >

Der Bedarf an diesen Engstellen ist klar, es gibt keine einfache Möglichkeit, ein Link-Element zu unterscheiden (Tag A ) von einem anderen. Insbesondere ist nicht klar, welches Element der Web-Designer, um in eine oder andere Weise angezeigt werden möchte. Unbedingt die Web-Designer irgendwie zeigen den Tag und ihr Verhalten zu sein. Sind daher verpflichtet - intrusive - völlig verständlich, überhaupt nicht schmälern den Nutzen und das Potenzial dieser Skripte. Nur um mehr Details und ein paar Zeilen Code in über das Web-Designer führen.

Es ist interessant, aber der doppelte Aspekt der "unaufdringliche Javascript, analysiert sowohl aus der Sicht des Endbenutzers aus der Sicht Web Designer.

Mehr ...

Mängel dell'unobtrusive JavaScript

Als wir darüber sprachen auch in der früheren Post, ist es Zeit, über das Böse (Scherz) zu sprechen, oder zumindest einige Mängel Highlight der Technik der unaufdringlichen JavaScript.
Wenn die unaufdringliche JavaScript-Code wird ausgeführt, wenn die Seite vollständig geladen ist, folgt daraus, dass je größer die Menge an Daten (HTML), aus der unser Seite und mehr Zeit, um vor unseren Code warten, ausgeführt wird.

Dies kann zu Verzögerungen bei der Durchführung und was zu einer lästigen Flicker-Effekt, wenn die Arbeit an den visuellen Elemente der Seite führen. Nehmen Sie zum Beispiel der Code durch Verwendung Ryan Johnson , Objekte Register zu erstellen. Wenn du dir die Demo werden Sie, dass für eine Sekunde oder so, wenn die Seite geladen, es gibt eindeutig ein Standard-Layout ersetzt bald nach der von den Register-Objekte zu finden. Neuladen der Seite wieder, dank der Browser-Cache scheint das Problem zu verringern (versuchen, alle Ihre Browser-Cache zu reinigen, um die Zeiten zu überprüfen).

All dies muss uns über die Grenzen dieser Technik zu reflektieren. Das gleiche Schnappen leidet genau dieselben Verlangsamung, insbesondere Seiten oft extrem hoch ist wie die undolog.com . Laden Sie die Startseite dieses Blogs ist klar, dass SNAP läuft ein paar Sekunden später, dh, wenn die Seite vollständig geladen ist.

Nach Definition von "unobtrusive JavaScript ist schwierig, dieses Problem in der Regel zu lösen. Doch die Entwicklung eines Webseiten-Inhaber können einige Vorkehrungen getroffen werden zur Verringerung oder Beseitigung von Mängeln ab. Ein relativ einfacher Weg ist, um eine Art Vorspannelement häufig in Adobe Flash zu erstellen verwendet. Sie können dann den Body-Tag -, die alle Elemente der Seite enthält - so dass es unsichtbar ist, so dass die Aufgabe der Javascript-Code sichtbar zu machen, wenn es fertig ist - wenn überhaupt - Änderungen an der DOM:

1
"ibody" style = "display:none" > < Körper id = "ibody" style = "display: none">

Die unaufdringliche JavaScript-Code am Ende ihrer Operationen:

1
2
3
"ibody" ) . style . display = "" ; Dokument getElementById ("ibody") Stil display = ""...;
/ / Wenn Sie Prototyp
) . style . display = "" ; $ ("Ibody") Style Display = ""..;

Lösung ist jedoch trivial und nicht immer anwendbar. Außerdem, selbst wenn wir irgendwie löste das Problem des ersten caricameno, so auf lange Sicht zu navigieren sein könnte wirklich ärgerlich für Bootsfahrer. Seien Sie nicht aufdringlich, hat deshalb ein Preis zu zahlen. Selbst den Betrieb auf der Objektebene, zum Beispiel, indem Sie nur die interessanten Elemente im versteckten Modus ist die Tatsache, dass der Code am Ende der Laden der gesamten Seite mit ihm zwangsläufig exakt die gleichen Probleme startet.

Mehr ...

Beispiele für unaufdringliche Javascript

Wie versprochen, hier sind einige konkretes Beispiel für unaufdringliche Javascript, vielseitiges und leistungsstarkes Werkzeug, wenn sie ordnungsgemäß verwendet. On Site / Blog Ryan Johnson können Sie zwei sehr gutes Beispiel dafür, unaufdringliche Javascript:

Ryan Johnson, in seinem Skript verwendet die Bibliothek Prototype , wie viele von den übrigen. Er hat auch einige Erweiterungen des relativ geschrieben Prototype , dann eingeführt - in einer anderen Form - in der neuesten Version der Bibliothek.
Verwenden Prototype zu veranschaulichen, der Betrieb von dezent JavaScript-Code ist in der Regel bequemer - wie wir später sehen werden, aber hier ist ein erstes Beispiel Rohöl, die keine externen Bibliotheken benötigt. Wir beginnen mit dem Hinweis, dass das Konzept hinter dem unaufdringlichen JavaScript, um von einem beliebigen HTML-Seite (Standard und nicht notwendigerweise von uns geschrieben - noch wichtiger Pluspunkt) beginnen soll, und verwenden JavaScript, um einige Änderungen vornehmen.

Schematimamente das Konzept ist es, eine Funktion, die die HTML-, durchquert dann analysiert der DOM und insbesondere die Punkte hinzufügen oder ändern Funktionalität durchzuführen. Normalerweise verwenden zwei Methoden, um Javascript-Code ausführen, um eine Seite zu laden: der erste ist, was du nicht umschließen Sie den Code in irgendeiner Funktion, und dann lassen Sie das Ausführen von Code-Browser sofort zu dem Punkt, wo der Anruf erscheint hochgeladen:

1
script > < script > alert ("Hallo"); </ script >

Das gleiche Ergebnis wird durch die Einbeziehung der Code erhalten:

1
"http://miosito.com/miocodice.js" >< / script > < script src = "http://miosito.com/miocodice.js"> </ script >

Allerdings, wenn es muss auf dem DOM einer Seite zu betreiben, dass sie eine voll beladen, dass alle Tag der Seite vorhanden und verfügbar zu verfolgen ist, übernimmt. So ist die beste Lösung wird derjenige sicher sein, dass die Seite vollständig ist. Dies ist durch die Gewinnung der onload-Ereignis des body-Tag, zum Beispiel, die freigegeben, wenn der Ladevorgang vollständig abgeschlossen ist wird möglich.

1
2
3
miafunzione ; Fenster onload = myfunction.;
/ / Oder, was dasselbe
function ( ) { alert ( "Hello" ) ; } . Fenster onload = function () {alert ("Hallo");}

Vermieden, natürlich, die kanonische Lösung, die eine Untertreibung zu nennen es aufdringlich wäre:

1
"miafunzione()" > < Körper onload = "myfunction ()">

Eine andere Technik, gröber und ebenso aufdringlich (wie es erzwingen, dass der Endanwender, um den Code an einer bestimmten Stelle zu platzieren), ist es, unser Skript am Ende des Dokuments einzufügen vor dem schließenden Body-Tag, mittlerweile veraltet Technik und verwendet in seltenen Fällen (siehe Google Analytics!).

Noch besser ist es, die Methode zu verwenden:

1
2
3
4
5
6
7
window. addEventListener ) { if (window. addEventListener) {
"load" , miafunzione , false ) ; Fenster. addEventListener ("Last", myfunction, false) ¾ i
( window. attachEvent ) { } Else if (window. attachEvent) {
"onload" , miafunzione ) ; Fenster. attachEvent ("onload", myfunction) ¾ i
{ Else {}
createSubMenus; Fenster. onload = createSubMenusÍ ¾
}

Auch dieses Stück Code wird in einer Funktion eingeschlossen. Es wird ein Ereignis-Listener für das Load-Ereignis des Fensters hinzuzufügen, ruft unsere Funktion miafunzione() . . Moderne Browser wie Firefox zum Beispiel, wird die Funktion addEventListener() in DOM Level 2 definiert, während Internet Explorer seine proprietäre Funktion nutzen wird attachEvent() . Allerdings sind wir nicht auf Perfektion in dieser Weise in der Tat, so ersetzt sie alle - wenn überhaupt - onload Ereignisse durch andere Skripte, die nicht wirklich geschaffen "non-intrusive".

Um dieses Problem schnell zu lösen, dass wegen der unterschiedlichen Verhalten der Browser würde zumindest kompliziert sein, hier zu erklären, sollten Sie als libreirie verwenden Prototype bietet un'elengantissimo Methode, um das Problem zu überwinden:

1
window , 'load' , function ( ) { alert ( "Hello" ) ; } ) ; . Ereignis beobachten (Fenster, 'load', function () {alert ("Hallo");});

Die Syntax ist sehr auffällig und spektakulär! Der Vorteil für diejenigen, die nicht verstanden hatte, ist, dass Sie schreiben:

1
2
window , 'load' , function ( ) { alert ( "Hello 1" ) ; } ) ; . Ereignis beobachten (Fenster, 'load', function () {alert ("Hallo 1");});
window , 'load' , function ( ) { alert ( "Hello 2" ) ; } ) ; . Ereignis beobachten (Fenster, 'load', function () {alert ("Hallo 2");});

Beim Laden der Seite wird vor dem Alarm "Hallo 2" und dann die Warnung "Hallo 1" gezeigt werden. Grundsätzlich können in einem FILO (Vorname Nachname Input Output) einem Stapel laden, während gleichzeitig die Ausführung aller Ereignisse angespannt, um das Dokument genau das, was gewünscht wurde zu laden. Auf diese Weise kann eine Seite zu laden - praktisch - endlos unaufdringliche Javascript, um das Dokument, dass Lasthaken.

Aber was kann man mit dieser Technik zu tun? Viele interessante Sachen. Ein Beispiel, dass wir kommentieren (siehe auch Vorbild: die Verwendung der doppelten Dollarzeichen ($ $) ) kommt von Tobie Langel . Mit wenigen Zeilen Code und Download-Bibliotheken Prototype und Scriptaculous kann man einen schönen Effekt auf die klassische Anker unserer Seiten geben. Erstellen Sie zunächst eine HTML-Seite mit dem folgenden Code:

1
2
3
4
5
6
7
8
= "#capitolo1" > Vai al capitolo 1 < / a >< / p > < p > < ein href = "# Kapitel 1"> Vai in Kapitel 1 </ ein > </ p >

< / p > < p > </ p >
< / p > < p > </ p >

.... < / p > .... eine Menge 'von < p > </ p > .... Nur als Beispiel

"capitolo1" > Capitolo 1 < / h1 > < h1 id = "Kapitel 1"> Kapitel 1 </ h1 >

Fügen Sie die Seite:

1
2
3
4
5
6
7
8
9
10
11
12
"prototype.js" type = "text/javascript" charset = "utf-8" >< / script > < script src = "prototype.js" type = "text / javascript" charset = "UTF-8"> </ script >
"scriptaculous-js-1.7.0/src/effects.js" type = "text/javascript" charset = "utf-8" >< / script > < script src = "scriptaculous-js-1.7.0/src/effects.js" type = "text / javascript" charset = "UTF-8"> </ script >

"text/javascript" language = "javascript1.2" > < script type = "text / javascript" language = "JavaScript1.2">
Event.observe (Fenster, 'load', function () {
$ $ ('A [href ^ = #]: nicht ([href = #])') each (function (element) {.
element.observe ('click', function (event) {neue Effect.ScrollTo (this.hash.substr (1));
Event.stop (event);
bindAsEventListener (Element))
})
})
</ script >

Dank "verwenden Event.observe() -Funktion und Zwei-Dollar ($ $) Sie leicht ändern, können das Verhalten des klassischen Anker. In diesem Fall ist eine neue Funktion wird auf die HTML-Seite geladen wird süchtig. Bei der Aufnahme das load-Ereignis wird alle Links im DOM (Tag <A>) mit href, die mit einer Raute (#, mit Ausnahme der einen Hash nur mit!) Beginnt zurückzuführen. Um dieser Elemente ist eine Funktion, die an das Click-Ereignis, ähnlich dem, was war mit der Last des Dokuments getan. An diesem Punkt ins Spiel kommt Scriptaculous , die einen Einfluss der Spirale in Richtung des Elements punatato aus unserer Verbindung produziert - modifiziert!

Mehr ...

Accessibility und Usability: unaufdringliche Javascript

JavaScript-Code kann in Echtzeit reagieren und zu manipulieren eine Vielzahl von Informationen: Zulassen, dass Benutzer mit einem Web-Seite in den letzten Jahren zu interagieren hat einen signifikanten Anstieg in der Verwendung von Client-seitiges Scripting produziert. Das Web2.0 ist der ultimative Ausdruck dieser Fähigkeit zur Interaktion, in dem der Endbenutzer - die benutzerfreundliche, sich aktiv an den Bau und die "Evolution der Website, mit dieser zu interagieren und sich selbst helfen. , Die der "Navigator" wird definitiv nicht passiv sieht - ist als User-Generated Content (User Generated Content oder UGC) bezeichnet!

Um diese Interaktion zu erreichen, so dass der Endverbraucher seinen Beitrag hinzuzufügen, entwickelten wir eine Reihe von Techniken, die das Aussehen und das Verhalten von Webseiten (statisch, bis jetzt, aber jetzt ähnlich wie bei den traditionellen Anwendungen verändert haben Desktop) in den letzten Jahren. Ändern Sie den Inhalt einer Seite, Dateien versenden, geben ihre Stimme zu einem Video oder einem Dokument, registrieren oder ihre persönlichen Daten ändern, sind nur einige der Anpassungen Operationen in vielen Dienstleistungen (2.0 beta) im Web

Mehr ...



Stoppen Sie SOPA