Artikel Tagged 'Javascript'


Javascript und PHP-Klassen, um E-Mail bestätigen un'indirizzo

Aufnahme der Post per E-Mail bestätigen in Javascript und PHP , hier ist eine nette Klasse in JavaScript können überprüfen, und prüfen Sie per E-Mail-Adressen. Seine Verwendung ist sehr einfach, obwohl es eine Client-seitige Kontrolle ist, dann leicht passieren Schutz, können Sie einfach JavaScript deaktivieren (vorschlagen Petition gegen diese Möglichkeit ;) jetzt alle Browser JavaScript zu umgehen erlauben, und dann alle Steuerelemente in Verbindung mit - in der kurzen Frist ist nicht alles auf dem Internet, siehe Ajax : Oder ).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
/ *
** @ Name: ckmail.js
@ ** Beschreibung: Prüfen Sie E-Mail-Syntax
** @ Author: = rückgängig machen =
Web-** @ author: http://www.undolog.com
** @ Author-E-Mail: @ g.fazioli undolog.com - g (dot) Fazioli (at) undolog (dot) com
@ ** Datum: 21.09.2006 21.24 Uhr
** @ Version: 1.0
* /

{ var oCKMail = {
, __release: "1,0",
, __filter: / ^ ([\ w-] + (:? \ [\ w-] +) *.) @ ((:?. [\ w-] + \) * \ w [\ w-] {0, 66}) \ ([az] {2,6} (:?. \ [az] {2}).?) $ / i,
, __username: "",
, __domain: "",
, __ext: "",

/ / ZU TUN
( e ) { GetUserName: function (e) {
this .__init ( e ) ) return ( this .__username ) ; if (This. __ init (e)) return (This. __ username);
false ) ; return (false);
},

/ / ZU TUN
( e ) { getDomain: function (e) {
this .__init ( e ) ) return ( this .__domain ) ; if (This. __ init (e)) return (This. __ Domain);
false ) ; return (false);
},

/ / ZU TUN
( e ) { GetExtension: function (e) {
this .__init ( e ) ) return ( this .__ext ) ; if (This. __ init (e)) return (This. __ ext);
false ) ; return (false);
},

/ / ZU TUN
( e ) { __init: function (e) {
! this .__filter. test ( e ) ) return ( false ) ; wenn return (false) (__ diese Filter Test (e)!..);
e. split ( "@" ) ; var t = e split ("@").;
t [ 0 ] ; Dies __ username = t [0].;
t [ 1 ] ; Diese Domain __ = t [1].;
.__domain. split ( "." ) ; .. t = __ Diese Domain split (".");
t [ 1 ] ; Dies __ ext = t [1].;
true ) ; return (true);
},

/ / ZU TUN
/ / Synopsis
/ / Überprüfen (und extlist, domainlist);
/ / Führt eine Reihe von Standard-Controls von einer E-Mail.
/ / Extlist - Sie können ein optionaler zweiter Parameter, die zu einer Reihe von Erweiterungen, entspricht
/ / Erlaubt sind oder ausgeschlossen werden (include / exclude-Erweiterung) nach dem ersten Wert im Array, die alle
/ / Andere Fehler werden berücksichtigt.
/ / Eg. [True, "en", "com"]-Pass (mit Liste)
/ / Eg. [False, "en", "com"] nicht passieren (Exclude-Liste)
/ / Wenn -1 nicht berücksichtigt
/ / Domainliste - Sie können passieren einen optionalen dritten Parameter, die zu einer Reihe von Domains entspricht, dass
/ / Zugelassen sind oder ausgeschlossen werden (include / exclude-Domain) nach dem ersten Wert im Array, das alle
/ / Andere Fehler werden berücksichtigt.
/ / Eg. [True, "alice.it", "mac.com"]-Pass (mit Liste)
/ / Eg. [False ", alice.it", "mac.com"] nicht passieren (Exclude-Liste)
/ / Wenn -1 nicht berücksichtigt
/ /
( e ) { Scheck: function (e) {
this .__init ( e ) ) { if (This. __ init (e)) {
/ / Check-Array domainExt überprüfen
arguments. length > 1 ) { if (arguments. Länge> 1) {
typeof ( arguments [ 1 ] ) == "object" ) { if (typeof (Argumente [1]) == "object") {
arguments [ 1 ] [ 0 ] ) { // include list if (arguments [1] [0]) {/ / include Liste
var i = 0 ; i < arguments [ 1 ] . length ; i ++ ) { for (var i = 0; i <Argumente [1] Länge;. i + +) {
this .__ext == arguments [ 1 ] [ i ] . toLowerCase ( ) ) return ( true ) ; if (This. __ ext == Argumente [1] [i] toLowerCase ().) return (true);
}
{ // exclude list Else {} / / Exclude-Liste
var i = 0 ; i < arguments [ 1 ] . length ; i ++ ) { for (var i = 0; i <Argumente [1] Länge;. i + +) {
this .__ext == arguments [ 1 ] [ i ] . toLowerCase ( ) ) return ( false ) ; if (This. __ ext == Argumente [1] [i] toLowerCase ().) return (false);
}
true ) ; return (true);
}
false ) ; return (false);
}
}
/ / Check-Array domainName Scheck
arguments. length > 2 ) { if (arguments. Länge> 2) {
typeof ( arguments [ 2 ] ) == "object" ) { if (typeof (Argumente [2]) == "object") {
arguments [ 2 ] [ 0 ] ) { // include list if (arguments [2] [0]) {/ / include Liste
var i = 1 ; i < arguments [ 2 ] . length ; i ++ ) { for (var i = 1, i <Argumente [2] Länge;. i + +) {
this .__domain == arguments [ 2 ] [ i ] . toLowerCase ( ) ) return ( true ) ; if (This. __ Domain == Argumente [2] [i] toLowerCase ().) return (true);
}
{ // exclude list Else {} / / Exclude-Liste

var i = 1 ; i < arguments [ 2 ] . length ; i ++ ) { for (var i = 1, i <Argumente [2] Länge;. i + +) {
this .__domain == arguments [ 2 ] [ i ] . toLowerCase ( ) ) return ( false ) ; if (This. __ Domain == Argumente [2] [i] toLowerCase ().) return (false);
}
true ) ; return (true);
}
false ) ; return (false);
}
}
true ) ; // email correct return (true) / / korrekte E-Mail
}
false ) ; // error return (false) / / Fehler
}
};

Das Objekt oCKMail bietet verschiedene Methoden zur Durchführung einer parallelen Reihe von Prüfungen an der Adresse, wie die Erweiterung, Domain, etc. ...

Um wirklich sicher sein, wenn Sie PHP haben, können Sie einen zusätzlichen und effektiven Kontrolle hinzufügen, bevor Sie das ausführen mail() . Hier ist der PHP-Klasse für diesen Zweck nützlich:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/ *
** @ Name: cckmail.php
@ ** Beschreibung: Prüfen Sie E-Mail-Syntax
** @ Author: = rückgängig machen =
Web-** @ author: http://www.undolog.com
** @ Author-E-Mail: @ g.fazioli undolog.com - g (dot) Fazioli (at) undolog (dot) com
@ ** Datum: 21.09.2006 23.58 Uhr
** @ Version: 1.0
**
Beispiele **
**
** / / Für eine Adresse OHNE diese E-Mails mit Domain "e-lementi.com" und "mac.com" Check
**
OCKMail CCKMail ** $ = new ();
** $ OCKMail-> check ($ email, NULL, array (false, "E-lementi.com", "mac.com"));
**
** / / Für eine Adresse einschließlich E-Mail mit der Domain "e-lementi.com" und "mac.com" Check
**
OCKMail CCKMail ** $ = new ();
** $ OCKMail-> check ($ email, NULL, array (true, "E-lementi.com", "mac.com"));
**
** / / Für eine Adresse OHNE diese E-Mails mit einem "Netto"-Check, "en", "org"
**
OCKMail CCKMail ** $ = new ();
** $ OCKMail-> check ($ email, array (false, "net", "en", "org"));
**
GESCHICHTE ** / Change Log
**
* /

! function_exists ( 'checkdnsrr' ) ) { if ( function_exists ('checkdnsrr')) ​​{
( $host , $type = '' ) { Funktion checkdnsrr ($ host, $ type ='') {
! empty ( $host ) ) { wenn ( leer ($ host)) {
$type == '' ) $type = "MX" ; if ($ type =='') $ type = "MX";
( "nslookup -type= $type $host " , $output ) ; @ exec ("nslookup-type = $ typ $ host", $ output);
list ( $k , $line ) = each ( $output ) ) { while ( list ($ k, $ line) = Jede ($ ausgabe)) {
eregi ( "^ $host " , $line ) ) { if ( eregi ("^ $ host", $ line)) {
; return true;
}
}
; return false;
}
}
}
/ /
Klasse {CCKMail
= "1.1" ; __release $ var = "1.1";
= false ; var $ status = false;
; var $ username;
; var $ Domäne;
; var $ ext;
/ /
CCKMail function () {}
/ /
$e ) { Funktion _test ($ s) {
status = false ; $ This -> Status = false;
'/^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/' ; $ P = '/ ^ + \ @ (\ [?) [A-zA-Z0-9 \ - \] + \ ([a-zA-Z] {2,4} |... [0-9] {1,3}) (\]) $ / ';
preg_match ( $p , $e ) ) ) { if (( preg_match ($ p, $ e))) {
explode ( "@" , $e ) ; $ T = explode ("@", $ s);
username = strtolower ( $t [ 0 ] ) ; $ This -> username = strtolower ($ t [0]);
domain = strtolower ( $t [ 1 ] ) ; $ This -> Domain = strtolower ($ t [1]);
explode ( "." , $this -> domain ) ; $ T = explode ($ this -> Domain ".");
ext = strtolower ( $t [ 1 ] ) ; $ This -> ext = strtolower ($ t [1]);
/ /
checkdnsrr ( $this -> domain . '.' , 'MX' ) ) $this -> status = true ; if ( checkdnsrr ($ this -> Domain, "MX"). '.') $ this -> Status = true;
checkdnsrr ( $this -> domain . '.' , 'A' ) ) $this -> status = true ; if ( checkdnsrr ($ this -> Domain, 'A'). '.') $ this -> Status = true;
checkdnsrr ( $this -> domain . '.' , 'CNAME' ) ) $this -> status = true ; if ( checkdnsrr ($ this -> Domain, "CNAME"). '.') $ this -> Status = true;
}
}
/ /
$m , $e = NULL , $d = NULL ) { Funktionskontrolle ($ m, $ e = null, $ d = NULL) {
_test ( $m ) ; $ This -> _test (Mio. USD);
$this -> status ) { if ($ this -> Status) {
/ / Check-Array domainExt überprüfen
! is_null ( $e ) ) { if ( is_null ($ e)) {
$e [ 0 ] ) { // include list if ($ e [0]) {/ / include Liste
$i = 1 ; $i < sizeof ( $e ) ; $i ++ ) { for ($ i = 1; $ i < sizeof ($ s); $ i + +) {
$this -> ext == strtolower ( $e [ $i ] ) ) return ( true ) ; if ($ this -> ext == strtolower ($ e [$ i])) return (true);
}
{ // exclude list Else {} / / Exclude-Liste
$i = 1 ; $i < sizeof ( $e ) ; $i ++ ) { for ($ i = 1; $ i < sizeof ($ s); $ i + +) {
$this -> ext == strtolower ( $e [ $i ] ) ) return ( false ) ; if ($ this -> ext == strtolower ($ e [$ i])) return (false);
}
true ) ; return (true);
}
false ) ; return (false);
}
/ / Check-Array domainName Scheck
! is_null ( $d ) ) { if ( is_null ($ d)) {
$d [ 0 ] ) { // include list if ($ d [0]) {/ / include Liste
$i = 1 ; $i < sizeof ( $d ) ; $i ++ ) { for ($ i = 1; $ i < sizeof ($ d); $ i + +) {
$this -> domain == strtolower ( $d [ $i ] ) ) return ( true ) ; if ($ this -> Domain == strtolower ($ d [$ i])) return (true);
}
{ // exclude list Else {} / / Exclude-Liste
$i = 1 ; $i < sizeof ( $d ) ; $i ++ ) { for ($ i = 1; $ i < sizeof ($ d); $ i + +) {
$this -> domain == strtolower ( $d [ $i ] ) ) return ( false ) ; if ($ this -> Domain == strtolower ($ d [$ i])) return (false);
}
true ) ; return (true);
}
false ) ; return (false);
}
true ) ; return (true);
}
false ) ; return (false);
}
}
?>

Was ineteressante ist die Fähigkeit dieser Klasse, um zu MX-Server verbinden (siehe checkdnsrr() ), um die Präsenz der Domain zu überprüfen. So sind zusätzlich zur Ausführung eines Syntax-Check auf der E-Mail läuft eine reale Ping Domain Vergangenheit. Wir können sagen, dass diese Methode 80% sicher ist ...

Mehr ...

Klasse JavaScript zu erkennen, Flash-

Obwohl es nicht eine Website komplett in Flash gemacht, dass einige Komponenten noch innerhalb der Seite wie Banner, Anspruch, RSS-Viewer, etc. Eco ... dann eine einfache Möglichkeit zu überprüfen, ob Flash installiert ist und aktiv auftreten. Wir schlagen hier eine Methode, das nicht braucht mehr Seiten, wie von Adobe vorgeschlagen. Wir sind bestrebt, alles innerhalb einer einzigen Seite zu lösen.

Die hier vorgestellte Klasse erlaubt es, die letzte Problem auch mit dem Explorer, oder die Aktivierung von ActiveX-Steuerelement geboren zu lösen. So beheben Sie es nur verwenden JavaScript, um die Flash-Komponente einzufügen, was unsere Klasse.

Das erste, was wir brauchen, ist ein schönes JavaScript-Klasse, die uns um alle notwendigen Bedienelemente machen können:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<! -
/ *
Flash-Detect ** Class & Object Pfad insertFlash
**
* /

{ var df = {
, __release: "1,0",
navigator. appVersion . indexOf ( "MSIE" ) != - 1 ) ? true : false ) , _isIE: ((navigator. appVersion indexOf ("MSIE") = - 1) wahr:.! falsch?)
navigator. appVersion . toLowerCase ( ) . indexOf ( "win" ) != - 1 ) ? true : false ) , _isWin: (.. (navigator. appVersion toLowerCase () indexOf ("win") = - 1) wahr: falsche?)
navigator. userAgent . indexOf ( "Opera" ) != - 1 ) ? true : false ) , _isOpera: (.!? (navigator. userAgent indexOf ("Opera") = - 1) true: false)

( i ) { getSwfVer: function (i) {
/ / Versionen von NS / Opera ab 3 an das Vorhandensein des Flash-Plug-in-Reihe von Plug-in Check
navigator. plugins != null && navigator. plugins . length > 0 ) { if (Plugins Navigator.! = null && Navigator. Plugins. Länge> 0) {
navigator. plugins [ "Shockwave Flash 2.0" ] || navigator. plugins [ "Shockwave Flash" ] ) { if (navigator. Plugins ["Shockwave Flash 2.0"] | |. Navigator Plugins ["Shockwave Flash"]) {
navigator. plugins [ "Shockwave Flash 2.0" ] ? " 2.0" : "" ; var = swVer2 Navigator Plugins ["Shockwave Flash 2.0"] "2.0":.? "";
navigator. plugins [ "Shockwave Flash" + swVer2 ] . description ; var = flashDescription Navigator Plugins ["Shockwave Flash" + swVer2] Beschreibung..;
flashDescription. split ( " " ) ; . var = descArray flashDescription split ("");
descArray [ 2 ] . split ( "." ) ; . var = tempArrayMajor descArray [2] split (".");
tempArrayMajor [ 0 ] ; var VersionMajor tempArrayMajor = [0];
tempArrayMajor [ 1 ] ; VersionMinor tempArrayMajor var = [1];
descArray [ 3 ] != "" ) var tempArrayMinor = descArray [ 3 ] . split ( "r" ) ; if (descArray [3] = "!") var = tempArrayMinor descArray [3] Split. ("r");
tempArrayMinor = descArray [ 4 ] . split ( "r" ) ; else var = tempArrayMinor descArray [4] split ("r").;
/ /
tempArrayMinor [ 1 ] > 0 ? tempArrayMinor [ 1 ] : 0 ; versionRevision tempArrayMinor var = [1]> 0 tempArrayMinor [1]: 0;
versionMajor + "." + versionMinor + "." + versionRevision ; var = flashVer VersionMajor VersionMinor + + + + versionRevision "." ".";
var flashVer = - 1 ; Flashver} else var = - 1;
}
navigator. userAgent . toLowerCase ( ) . indexOf ( "webtv/2.6" ) != - 1 ) flashVer = 4 ; else if (userAgent navigator .. toLowerCase () indexOf ("webtv/2.6") = - 1.!) flashVer = 4;
navigator. userAgent . toLowerCase ( ) . indexOf ( "webtv/2.5" ) != - 1 ) flashVer = 3 ; else if (userAgent navigator .. toLowerCase () indexOf ("webtv/2.5") = - 1.!) flashVer = 3;
navigator. userAgent . toLowerCase ( ) . indexOf ( "webtv" ) != - 1 ) flashVer = 2 ; else if (userAgent navigator .. toLowerCase () indexOf ("WebTV") = - 1.!) flashVer = 2;
1 ; sonst flashVer = - 1;
/ /
flashVer zurückkehren;
},

( reqMajorVer , reqMinorVer , reqRevision ) { DetectFlashVer: function (reqMajorVer, reqMinorVer, reqRevision) {
parseFloat ( reqMajorVer + "." + reqRevision ) ; reqVer var = parseFloat (reqMajorVer reqRevision + + ".");
var i = 25 ; i > 0 ; i -- ) { for (var i = 25; i> 0, i -) {
this ._isIE && this ._isWin && ! this ._isOpera ) var versionStr = VBgetSwfVer ( i ) ; wenn (This. _isIE && diese _isWin && diese _isOpera.!.) = var versionStr VBgetSwfVer (en);
versionStr = this . getSwfVer ( i ) ; else var = versionStr dies getSwfVer (i).;
versionStr == - 1 ) return false ; if (versionStr == - 1) return false;
versionStr != 0 ) { else if (versionStr! = 0) {
this ._isIE && this ._isWin && ! this ._isOpera ) { if (This. _isIE && dies. _isWin &&! dies. _isOpera) {
versionStr. split ( " " ) ; . var = tempArray versionStr split ("");
tempArray [ 1 ] ; tempString tempArray var = [1];
tempString . split ( "," ) ; . var = versionArray tempString split ("");
var versionArray = versionStr. split ( "." ) ; . Var =} else versionArray versionStr Split (".");
/ /
versionArray [ 0 ] ; var VersionMajor versionArray = [0];
versionArray [ 1 ] ; VersionMinor versionArray var = [1];
versionArray [ 2 ] ; var = versionRevision versionArray [2];

versionMajor + "." + versionRevision ; // 7.0r24 == 7.24 var = VersionString VersionMajor + "." versionRevision + / / == 7,24 7.0r24
parseFloat ( versionString ) ; var = VersionNum parseFloat (VersionString);
/ / Ist das Major-Version> = angeforderte Hauptversion ist die Minor-Version> = angeforderte Nebenversion
versionMajor > reqMajorVer ) && ( versionNum >= reqVer ) ) return true ; if ((VersionMajor> reqMajorVer) && (VersionNum> = reqVer)) return true;
versionNum >= reqVer && versionMinor >= reqMinorVer ) ? true : false ) ; else return:; ((VersionNum> = reqVer VersionMinor &&> = reqMinorVer) true false?)
}
}
reqVer ? false : 0.0 ) ; return (reqVer falsch:? 0,0);
},

/ / ZU TUN
( n , w , h ) { insertFlash: function (n, w, h) {
this . detectFlashVer ( 8 , 0 , 0 ) ) { wenn (This. DetectFlashVer (8, 0, 0)) {
; n + = "swf.";
'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,29,0" width="' + w + '" height="' + h + '"> \n ' ) ; Dokument write ('<Objekt classid = "CLSID: D27CDB6E-AE6D-11CF-96B8-444553540000". codebase = "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab # version = 7 , 0,29,0 "width =" "+ w + '" height = "" + h +' "> \ n ');
'<param name="movie" value="' + n + '" /> \n ' ) ; . Dokument zu schreiben ("+ n + <param name="movie" value="''" /> \ n");
'<param name="quality" value="auto" /> \n ' ) ; Dokument write ('<param name="quality" value="auto" /> \ n ").;
'<embed src="' + n + '" width="' + w + '" height="' + h + '" quality="auto" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed> \n ' ) ; Dokument. write ('<embed src = "" + n + "" width = "" + w +' "height =" "+ h + '" Qualität = "auto" pluginspage = "http://www.macromedia. com / go / getflashplayer "type =" application / x-shockwave-flash "> </ embed> \ n ');
'</object> \n ' ) ; . Dokument write ('</ object> \ n');
document. write ( '<a id="flash_alternate" target="_blank" href="http://www.adobe.com/go/getflashplayer"></a>' ) ; Else} Dokument schreiben ('<a target="_blank" id="flash_alternate" href="http://www.adobe.com/go/getflashplayer"> </ a>.');
}
};

/ / ->

Wie üblich, ist der Internet Explorer (7) unterschiedlich und nimmt eine speziell strukturierte Code in VBScript:

[VB]

[/ Vb]

Speichern Sie diese beiden Dateien (und Ordner df.js df.vbs js) und includiamoli in unsere Seite (index.html, index.php oder default.html, etc. ...) innerhalb des HEAD-Tag.

1
2
"javascript1.2" type = "text/javascript" src = "js/df.js" >< / script > < script language = "JavaScript1.2" type = "text / javascript" src = "js / df.js"> </ script >
"VBScript" type = "text/vbscript" src = "js/df.vbs" >< / script > < script language = "VBScript" type = "text / vbscript" src = "js / df.vbs"> </ script >

Jetzt haben wir alles was Sie brauchen, und wir können auf der Seite, die das Flash-Objekt enthält zu bewegen. Finden Sie die Stelle, wo Flash-angezeigt wird und geben Sie folgenden Code:

1

Hier haben wir angenommen, dass es einen Datei-Ordner splash.swf Blitz! Beachten Sie, dass es notwendig, die swf einzufügen. Die beiden Nummern 900 und 122 sind die Abmessungen.

Noch besser wäre unterstützen den Fall - Fernbedienung - wo JavaScript ist deaktiviert. Unter diesen Umständen können Sie auf zweierlei Weise vorgehen:

1. Inseire Code direkt in den OBJECT / EMBED
2. Benachrichtigen Sie, dass JavaScript ist deaktiviert

Im ersten Fall haben wir die Kontrolle verlieren über das Vorhandensein von Flash und Explorer werden Sie aufgefordert, das ActiveX-Steuerelement zu aktivieren. Allerdings wird der Film zu sehen sein, wenn Flash installiert ist.

Im zweiten Fall können wir zeigen, ein Bild und / oder mit Javascript ausgeschaltet notoficare das ist nicht möglich, das Vorhandensein des Adobe Flash Plug-In überprüfen. Zum Beispiel die Wahl der Nummer 1-Lösung:

1
2
3
4
5
6
7
8
9
10
"claim" > < div id = "Anspruch">

< noscript >

"movie" value = "flash/splash.swf" / > < param name = "movie" value = "flash / splash.swf" />
"quality" value = "high" / > < param name = "quality" value = "high" />

</ Objekt >
</ noscript >
</ div >

Detecting Flash und verwalten mehrere Alternativen, wie auf Flash-detect: wie man Flash erkennen , ist nicht ganz angenehm, zumindest hoffen wir, dass es nicht mit der Zeit verschlechtern.

Mehr ...

Dynamic HTML mit Javascript

Schreiben von Code innerhalb einer HTML-Seite dynamisch ist möglich und sinnvoll. predisposto ad accettare codice inserito tramite innerHTML . Der direkteste Weg ist, zu nutzen und bekannt documenti.write() oder einen Container DIV bereit, über Code eingefügt akzeptieren innerHTML . Alternativ können Sie auch an ein bestehendes Tag legen und mit dem DOM hinzuzufügen oder zu entfernen Elemente innerhalb der Seite. Zum Beispiel immmaginiamo wollen eine neue Datei ohne Verwendung von Server Side Scripting Javascript laden und dann die Seite neu laden. Die nachfolgenden Funktionen, zum Beispiel fügt eine JavaScript-Datei auf Ihrer Seite als Parameter (inkl. Pfad).

1
2
3
4
5
6
s ) { addScripting Funktion (en) {
document. createElement ( 'script' ) ; scriptNode var = Dokument createElement ('script').;
"head" ) [ 0 ] . appendChild ( scriptNode ) ; Dokument getElementsByTagName ("head") [0] appendChild (scriptNode)..;
'javascript' ; . scriptNode language = "javascript";
s ; scriptNode src = s.;
}

Ebenso können Sie ein Stylesheet an unsere Seite hinzuzufügen, angegeben durch die Variable cssfile :

1
2
3
4
5
document. createElement ( 'link' ) ; cssNode var = Dokument createElement ('link').;
'rel' , 'stylesheet' ) ; . cssNode setAttribute ('rel', 'Stylesheet');
'type' , 'text/css' ) ; . cssNode setAttribute ('type', 'text / css');
'href' , cssfile ) ; . cssNode setAttribute ('href', cssFile);
'head' ) [ 0 ] . appendChild ( cssNode ) ; Dokument getElementsByTagName ('head') [0] appendChild (cssNode)..;

Mehr ...

Flash-Erkennung: erkennt, wie man Flash

Wie können Sie feststellen, ob ein Browser die richtige Version des Adobe Flash Plugin? Dazu gibt es - bekanntermaßen - 5 Techniken:

  • Unter Berufung auf automatisch ablaufende Funktion des Object-Tag und EINBETTEN
  • Verwenden Sie ein Skript (JavaScript und / oder VBScript), die eigens von Adobe bereitgestellten
  • Verwenden Sie einen Kunstgriff mit einer einzigen Flash-Film
  • Tun Sie nichts ;)
  • Lassen Sie den Benutzer wählen

Mehr ...

Ajax ohne HTTPRequest

Wie viele Web-Entwickler wissen, vor dem Aufkommen des XMLHttpRequest-Objekts, wurde das Problem der Umladung von einer Web-Seite mit der Technik der versteckten Frame oder IFRAME gelöst. Dieser einfache Trick für viele alte dürfen einige ansonsten unlösbare Probleme der Schnittstelle zu lösen. Ein Vorteil bei der Verwendung von versteckten Frame, unter anderem war die Möglichkeit der Beibehaltung des HISTORY-Browser! Was das bedeutet nicht erlauben das XMLHttpRequest-Objekt.

Neben Techniken, die HTML-Frame oder IFRAME versteckt zu verwenden, ist es möglich, Flash-als Sub-Kanal für die Kommunikation zwischen der Seite und dem Server zu verwenden. Einige Erfahrungen in diese Richtung werden derzeit entwickelt (siehe zum Beispiel Fjax ). Die Idee ist, zu "verstecken" einen Flash-Film innerhalb der HTML-Seite (wie bei FRAME passiert) und mit diesem kommunizieren via JavaScript (oder VBScript nur für Microsoft-Umgebung).

Diese Technik eine Reihe von versteckten Fallen. Erste aller Kräfte der Endbenutzer das PlugIn von Flash zu installieren, und deshalb stellt keine Lösung HTML (rein) sauber. Es erfordert auch, jedoch veranlasste die Verwendung von Javascript und Flash als Schnittstelle zwischen der Seite, so viel wert, mit dem XMLHttpRequest-Objekt. Dann, wenn Sie einen Rahmen in ActionScript zu schreiben beginnen wollen alles in Flash zu tun. Hier ist die Variante, dass das XMLHttpRequest-Objekt zu wenig Sinn zu machen beginnt.
Letztendlich, wenn Sie nicht möchten, dass das XMLHttpRequest-Objekt zu verwenden, müssen wir uns auf die nun etablierte Technik der versteckten Frame verlassen. Es gibt auch diejenigen, die gerade eine gemischte Technik verwenden: XMLHttpRequest + IFRAME!

Doch jetzt hat Ajax (XMLHttpRequest-Objekt in Form) erwies sich als so erfolgreich, dass in Zukunft das XMLHttpRequest-Objekt, das wird durch verbesserte Browser-Anbieter (Microsoft, Mozilla, Opera, etc ...) unterstützt werden. In der Praxis wird XMLHttpRequest eine Standard-Komponente (wie dies bereits in FireFox) in Ihrem Browser, erreichbar über Javascript sein! Warum also nicht nutzen?

Mehr ...

Die nahe Zukunft von Ajax

Ajax, für einige war es eine Revolution. stessi nascosti). Für einige Programmierer "navigiert" war nur eine andere Art und Weise zu tun, was wurde zuerst mit Hilfe des HTML-TAG erreicht IFRAME (oder FRAME gleichen versteckt). Offensichtlich sind sie alle recht. Ajax war eine Revolution, weil sie zu einem bestimmten Zeitpunkt, wo die Ausbreitung von Groß-banda und der Reife des Web (Web 2.0?) Einen völlig anderen Ansatz ermöglicht haben als in der Vergangenheit passiert ist.

Die Verbreitung von Web-Anwendungen von großen Gruppen wie Microsoft, Yahoo, Google und anderen zeigt, wie viel Sie werden in diesem neuen Ansatz zu investieren. Die Zukunft - demnächst - Ajax ist so hell und voll von neuen Wendungen.

Der Browser und Server Scripting (wie PHP) kann eine Beihilfe zu dieser neuen Art der Betrachtung des Web und seine Ressourcen zu geben! Applick.com gibt es eine klare Demonstration!

Mehr ...

Internet Explorer 7 (IE7): PNG-und CSS-noch weit entfernt?

In Redmond, müssen über eine großes Problem auf die Aufnahme! Es ist wunderbar absurd, dass am Ende des Jahres 2006 gibt es immer noch die Grundlage für ein - na ja - ungefähre Kompatibilität zwischen IE7 und Firefox! Trotz der offiziellen Veröffentlichung - wenn auch mit einer begrenzten Anzahl von Standorten - 7 des Internet Explorers, die Rendering-Engine Seite leidet immer noch unter offensichtlicher Mängel Programmierung! Ohne auf die vielen Details abgewendet Liste nur zwei hochkarätige Bugs noch präsentieren in diesem offiziellen Release!

Zuerst von allen NPCs werden anders GIF gemacht ... und, schlimmer noch, in absoluten Position unterziehen seltsame Konturen, je nachdem wie es läuft auf IE! Offensichtliche Fehler? O Wahnsinn einiger Junior-Entwickler?

Auf der CSS-Pseudo-Klasse: hover ist immer noch nicht auf allen TAG unterstützt, obwohl viele für das Blog Lauf nehmen! Aber welches System? Siehe W3C ...
Ein einfaches T: Last-Kind wird praktisch ignoriert! First-child: Microsoft hat mit Recht p unterstützt. Nun, wenn es implementiert das erste, was Sie bei der Umsetzung auch letzten Kosten? Geheimnis ...

Die Spitze des Absurden, dann wird mit Aufzählungen erhalten! Hört, hört! IE7 IE6 verhält sich genau wie! Aus der Reihe: Sie haben mit fehlerhaften Code gebracht? Zu viele copy and paste natürlich! Wenn definitie eine Liste mit den Kanonen und einem benutzerdefinierten Bild als UL LI-Punkte-Liste, nicht versuchen, ein Float-Element LI verwenden, verschwindet das Bild auf mysteriöse Weise, wie sie auf IE6 tat! Der eine, unnötig zu sagen, um Dinge richtig zu machen ist die übliche - old - FireFox!

Blog IE7 gibt es zahlreiche Beschwerden. Obwohl es die Bemühungen der Microsoft Behemoth, einen Blog während der Entwicklung einer Software wie IE7 starten jedoch erkannt, bleibt die Frage nach der Effektivität dieser Bewegung. Sie haben wirklich zugehört auf die Anfragen der Nutzer-Entwickler? Der Blog wurde mit dem IE7 zu spät geöffnet worden?

Wieder einmal müssen wir für einen Service-Pack nächste Abenteuer warten ...

Mehr ...

Adobe zur Rettung: Flash 9 und Photoshop Lightroom! Die Beta auch Exes ...

Nach der Übernahme von Macromedia, Adobe schafft seine Labs , Entwicklungslabors! Aufbauend auf dem Erfolg von Microsoft mit seinem Internet Explorer 7 Blog - das hat (und hat) gespeichert eine Menge von Diensten Pack - Adobe hat außerdem die Technik der Beta-Version. In der Tat war er nun, anstatt zu warten, für die nun sehr lange Zeit, um eine Software zu entwickeln (sei es Tradition, ist ein Web Application), warum nicht, Ihnen vorzuschlagen, die Version noch in der Entwicklung? Auf diese Weise gibt es eine Echtzeit-Feedback über die tatsächliche Qualität der Software die Sie entwickeln.

Aber, ganz ehrlich, sollte die Software haouse ein wenig nach unten "Preise für ihre Software, da die Beta - Sie zahlen oder gezahlt werden - wir tun Nutzer!

Mit Adobe Soundbooth Beta überschreibt der bekannten SoundEdit. Adobe Photoshop Lightroom ist ein neues Produkt an professionelle Fotografen richtet, mit vielen Video-Demos online. Flash 9 mit ActioneScript 3 erscheint auch in der Alpha-Version zum Download! Es ist zwar Vorschau angezeigt! Um die mobile finden Flash Lite 2.1 Authoring-Update , aber es scheint, dass eine endgültige Freilassung statt Vorfreude. Abgesehen von diesem kleinen Sammelband von Beta-, Alpha-und Upgrade glauben, dass die Initiative gut ist, wenn nicht sogar hervorragend.
Also für die Neugierigen, die vor und wollen nicht warten, um eine neue Version der Software versuchen, Adobe Labs ist ein Ort der sicheren Spaß! Ich betone noch einmal die Tendenz zum Endverbraucher zu den Stufen der Entwicklung beteiligt, ein Trend, der seine Verbreitung verdankt die Generation Web 2.0. Wahrscheinlich wird ein Modus, in naher Zukunft wie ein Lauffeuer verbreiten wird, wo immer möglich sein. Sie könnten versuchen, un'appartamente un'autombile oder bevor es freigegeben wird, zum Beispiel ...

Mehr ...

Javascript PHP vs Inhalt

Es ist ein sehr wichtiger Grund für die Bevorzugung der Aufnahme von Inhalten über PHP - Server-Seite - auf einer Webseite in Bezug auf die Verwendung von JavaScript - Client-Seite. In der Entwicklung von Werkzeugen Ausflug Dienstleistungen auf dem CMS getmePage verwendet applick.com war es möglich, Ajax-Engine als HTTP-Server Datenrettung verwenden. Das Problem, in diesem Fall, war, dass man mit dem Inhalt einer Seite zu tun hatte, dass Inhalte, die von Suche Crawler wie Googlebot indiziert! Die Raupen nicht ausführen JavaScript, so dass es eine leere Seite in den Augen der googlebot. Heute bin ich zufrieden, einen Unterschied in der Indizierung in Suchmaschinen zu machen bin, so muss man vorsichtig sein, wie sie Inhalte auf einer Seite generiert. Derjenige, der die 'sieht Endkunden ist nicht die Ansicht eines Werkzeugs wie googlebot. Dies ist einer der Gründe, die die Wahl von PHP nell'engine Datenrettung dell'applick getmePage bestimmt. PHP in der Tat durch den Web-Server, bevor die Seite an den Client ausgeführt. Daraus folgt, dass das, was er sieht, ist das, was ein Crawler die Endanwender sieht.

Mehr ...

Web 2.0: Kein JavaScript

Wie bereits auf "berührt JavaScript vs PHP "(oder ASP, CFM, ...), die Frage, ob oder nicht, einen Kernel Web2.0 JavaScript in Ihren Skripts eingeben, anstatt ihn - in der Mehrheit der Mitglieder - der Server-Seite, kann zu Verwirrung führen, wenn nicht Verwirrung. Allerdings gibt es gute Gründe, um den Server als dem Auftraggeber zu begünstigen, aus Gründen, die nichts mit Web2.0, die im Gegensatz dazu wirft ein Schlaglicht auf Ihre JavaScript-Skripten zu tun haben.

Mehr ...



Stop SOPA