Kontrola żądań wychodzących do adresów URLFlash Player 9 i nowsze wersje, Adobe AIR 1.0 i nowsze wersje Wychodzące wywołania skryptów oraz wychodzące żądania kierowane do zewnętrznych adresów URL (adresów HTTP, mailto: itd.) realizowane są przez następujące interfejsy API:
W przypadku treści załadowanych z lokalnego systemu plików wywołania tych metod są udane tylko, jeżeli kod i zawierająca go strona WWW (o ile taka istnieje) znajdują się w lokalnie zaufanym obszarze izolowanym lub obszarze izolowanym aplikacji AIR. Wywołania tych metod kończą się niepowodzeniem, jeśli zawartość znajduje się w lokalnym obszarze izolowanym z obsługą sieci lub lokalnym obszarze izolowanym z systemem plików. Dla treści, które nie są załadowane lokalnie, wszystkie te wywołania interfejsu API umożliwiają komunikację ze stroną sieci Web, w której treści te są osadzone, z uwzględnieniem wartości parametru AllowScriptAccess opisanego poniżej. Funkcja flash.net.navigateToURL() oferuje dodatkową możliwość komunikacji z dowolną otwartą ramką przeglądarki, nie tylko stroną, w której osadzony jest plik SWF. Więcej informacji na temat tej funkcjonalności zawiera sekcja Korzystanie z funkcji navigateToURL(). Parametr AllowScriptAccess w kodzie HTML ładującym plik SWF steruje możliwością realizacji żądań z pliku SWF skierowanych do zewnętrznych adresów URL. Parametr ten należy ustawić wewnątrz znacznika PARAM lub EMBED. Jeśli wartość parametru AllowScriptAccess nie zostanie określona, plik SWF oraz strona HTML będą mogły komunikować się tylko wówczas, gdy będą znajdować się w tej samej domenie. Parametr AllowScriptAccess może przyjmować jedną z trzech wartości :"always", "sameDomain" lub "never".
Oto przykład ustawienia znacznika AllowScriptAccess na stronie HTML w sposób umożliwiający dostęp do adresów URL w innej domenie: <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> Korzystanie z funkcji navigateToURL()Oprócz opisanego powyżej parametru allowScriptAccess, funkcja navigateToURL() ma opcjonalny drugi parametr — target. Parametr target może posłużyć do określenia nazwy okna lub ramki HTML, do którego/której ma być wysyłane żądanie kierowane pod adres URL. Takie żądania podlegają dodatkowym ograniczeniom dotyczącym zabezpieczeń, a ograniczenia te zależą od tego, czy wywołanie navigateToURL() jest wywołaniem skryptu, czy nie. W przypadku wywołań skryptów, takich jak navigateToURL("javascript: alert('Hello from Flash Player.')"), obowiązują następujące reguły.
W przypadku instrukcji niebędących wywołaniem skryptu (takich jak żądania HTTP, HTTPS i mailto:, żądanie kończy się niepowodzeniem jeśli spełnione są łącznie wszystkie poniższe warunki.:
Więcej informacjiWięcej informacji o dostępie do zewnętrznych adresów URL zawierają następujące sekcje w Skorowidzu języka ActionScript 3.0 dla platformy Adobe Flash:
|
|