Für die externe Skripterstellung und den externen URL-Zugriff (durch die Verwendung von HTTP-URLs wie „mailto:“ usw.) werden die folgenden APIs verwendet:
-
Die Funktion
flash.system.fscommand()
-
Die Methode
ExternalInterface.call()
-
Die Funktion
flash.net.navigateToURL()
Bei Inhalt, der aus dem lokalen Dateisystem geladen wird, sind diese Methodenaufrufe nur erfolgreich, wenn der Code und die entsprechende Webseite (sofern vorhanden) sich in der Sandbox „local-trusted“ oder in der Sicherheits-Sandbox der AIR-Anwendung befinden. Aufrufe dieser Methoden schlagen fehl, wenn sich der Inhalt in der „local-with-networking“- oder der „local-with-filesystem“-Sandbox befindet.
Bei nicht lokal geladenem Inhalt können alle diese APIs abhängig vom Wert des AllowScriptAccess-Parameters (siehe unten) mit der Webseite kommunizieren, in der sie eingebettet sind. Die Funktion
flash.net.navigateToURL()
kann zudem mit allen geöffneten Browserfenstern oder Frames kommunizieren. Sie ist nicht auf die Seite beschränkt, in der die SWF-Datei eingebettet ist. Weitere Informationen zu dieser Funktion finden Sie unter
Verwenden der navigateToURL()-Funktion
.
Der
AllowScriptAccess
-Parameter in dem HTML-Code, der eine SWF-Datei lädt, steuert den externen URL-Zugriff aus einer SWF-Datei heraus. Legen Sie diesen Parameter in den Tags PARAM oder EMBED fest. Wenn Sie für
AllowScriptAccess
keinen Wert angeben, können die SWF-Datei und die HTML-Seite nur miteinander kommunizieren, wenn sie aus der gleichen Domäne stammen.
Der Parameter
AllowScriptAccess
kann folgende Werte annehmen:
„always"
,
„sameDomain"
oder
„never"
.
-
Wenn
AllowScriptAccess
auf
„always"
festgelegt ist, kann die SWF-Datei mit der HTML-Seite, in die sie eingebettet ist, auch dann kommunizieren, wenn die SWF-Datei aus einer anderen Domäne als die HTML-Seite stammt.
-
Wenn
AllowScriptAccess
auf
„sameDomain"
festgelegt ist, kann die SWF-Datei mit der HTML-Seite, in die sie eingebettet ist, nur dann kommunizieren, wenn die SWF-Datei aus der gleichen Domäne wie die HTML-Seite stammt. Dies ist der Standardwert für
AllowScriptAccess
. Verwenden Sie diese Einstellung, oder geben Sie keinen Wert für
AllowScriptAccess
an, um zu verhindern, dass eine SWF-Datei in einer Domäne auf eine HTML-Seite aus einer anderen Domäne zugreift.
-
Wenn
AllowScriptAccess
auf
„never"
festgelegt ist, kann die SWF-Datei mit keiner HTML-Seite kommunizieren. Die Verwendung dieses Werts ist seit der Veröffentlichung von Adobe Flash CS4 Professional veraltet. Von der Verwendung dieses Werts wird abgeraten und er sollte nicht erforderlich sein, wenn Sie keine nicht vertrauenswürdigen SWF-Dateien von Ihrer Domäne aus bereitstellen. Falls Sie nicht vertrauenswürdige SWF-Dateien bereitstellen müssen, empfiehlt es sich, eine separate Unterdomäne zu erstellen und alle nicht vertrauenswürdigen Inhalte dort abzulegen.
Das folgende Beispiel veranschaulicht, wie Sie den Tag
AllowScriptAccess
in einer HTML-Seite so einstellen, dass ein externer URL-Zugriff auf eine andere Domäne möglich ist:
<object id='MyMovie.swf' classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.adobe.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0' height='100%' width='100%'>
<param name='AllowScriptAccess' value='always'/>
<param name='src' value=''MyMovie.swf'/>
<embed name='MyMovie.swf' pluginspage='http://www.adobe.com/go/getflashplayer' src='MyMovie.swf' height='100%' width='100%' AllowScriptAccess='never'/>
</object>
Verwenden der navigateToURL()-Funktion
Zusätzlich zu dem Parameter
allowScriptAccess
zum Angeben von Sicherheitseinstellungen (siehe oben) verfügt die Funktion
navigateToURL()
über einen optionalen zweiten Parameter:
target
. Mit dem Parameter
target
können Sie ein HTML-Fenster oder einen Frame angeben, an das bzw. den die URL-Anforderung gesendet werden soll. Für diese Anforderungen gelten zusätzliche Sicherheitseinschränkungen. Diese variieren in Abhängigkeit davon, ob
navigateToURL()
als Scripting- oder Non-Scripting-Anweisung verwendet wird.
Für Scripting-Anweisungen (z. B.
navigateToURL("javascript: alert('Hello from Flash Player.')")
) gelten die folgenden Regeln.
-
Wenn es sich bei der SWF-Datei um eine lokal vertrauenswürdige Datei handelt, ist die Anforderung erfolgreich.
-
Wenn als Ziel die HTML-Seite verwendet wird, in die die SWF-Datei eingebettet ist, gelten die oben erläuterten
allowScriptAccess
-Regeln.
-
Wenn das Ziel Inhalte enthält, die aus der gleichen Domäne wie die SWF-Datei geladen wurden, ist die Anforderung erfolgreich.
-
Wenn das Ziel Inhalte enthält, die aus einer anderen Domäne als die SWF-Datei geladen wurden, und die beiden vorherigen Bedingungen nicht erfüllt sind, schlägt die Anforderung fehl.
Bei Non-Scripting-Anweisungen (z. B. HTTP, HTTPS und
mailto:
) schlägt die Anforderung fehl, wenn die folgenden Bedingungen zutreffen:
-
Das Ziel entspricht einem der speziellen Schlüsselwörter
"_top"
oder
"_parent"
; UND
-
Die SWF-Datei ist Bestandteil einer Webseite in einer anderen Domäne; UND
-
Die SWF-Datei wurde mit einem Wert für
allowScriptAccess
eingebettet, der nicht
„always"
lautet.
Weitere Informationen
Weitere Informationen zum externen URL-Zugriff finden Sie in den folgenden Abschnitten im
ActionScript 3.0-Referenzhandbuch für die Adobe Flash-Plattform
:
|
|
|