Piotr Bartkowski

Piotr Bartkowski zawód:
Technik-Informatyk

Temat: jak pomieszać Flexem w HTMLu...

Problem jest taki, chciałbym z aplikacji Flex zmienić tekst w tagu DIV o ID="XX"??

taki mam html:

<html>
<body>
<div id="XX">TEKST</div>

<embed
pluginspage='http://www.adobe.com/go/getflashplayer'
WIDTH='190'
HEIGHT='190'
src='${swf}.swf'
allowScriptAccess='always'
SWLIVECONNECT='true'/>

</body>
</html>


a taki Flex kod:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:mx="library://ns.adobe.com/flex/mx" layout="absolute" height="190" width="190"
creationComplete="init()" textAlign="center" alpha="0.66" backgroundColor="#FFF6D0">

<fx:Script>
<![CDATA[
import flash.external.ExternalInterface;
public function init():void
{
if (ExternalInterface.available)
{
ExternalInterface.call("document.getElementById(\"XX\").innerText=\"inny tekst\""); }
}
]]>
</fx:Script>

<fx:Declarations>
</fx:Declarations>
</mx:Application>


Jak dobrze rozumuje to po uruchomieniu aplikacji na stronie TEKST powinien się zmienić na inny tekst.
Ale to nie działa.Piotr Bartkowski edytował(a) ten post dnia 11.11.10 o godzinie 13:45

konto usunięte

Temat: jak pomieszać Flexem w HTMLu...

Zadziała na przykład tak:

ExternalInterface.call('eval','(document.getElementById("XX").innerText="inny tekst" )');


Pierwszy parametr dla call to nazwa funkcji.

Więcej na:
Link do dokumentacji

Edit: stylRobert Bąk edytował(a) ten post dnia 11.11.10 o godzinie 14:21
Piotr Bartkowski

Piotr Bartkowski zawód:
Technik-Informatyk

Temat: jak pomieszać Flexem w HTMLu...

Dzięki :)

Zadziałało teraz.
Teraz jeszcze muszę pokombinować jak tu pobrać do aplikacji ten .innerText z wybranego Taga html...Piotr Bartkowski edytował(a) ten post dnia 11.11.10 o godzinie 14:31
Piotr Bartkowski

Piotr Bartkowski zawód:
Technik-Informatyk

Temat: jak pomieszać Flexem w HTMLu...

Jest jeszcze jeden chyba problem, bo jak osadzę aplikację Flex na obcej stronie to już zmiany w tagach tej strony nie dają rezultatu.
Olga Grabek

Olga Grabek Senior Software
Engineer

Temat: jak pomieszać Flexem w HTMLu...

Taka uwaga co do javascript: zamiast innerText używaj innerHTML. Będzie działało niezależnie od przeglądarki, choć nie jest to część standardu DOM.
Piotr Bartkowski

Piotr Bartkowski zawód:
Technik-Informatyk

Temat: jak pomieszać Flexem w HTMLu...

A rzeczywiście, innerHTML musi być. Bo jak miałem innerText to pod FF nie działało mi to a pod Chrome i IE działało.
Dzięki:)
Z tego co widzę to te technologie Webowe to są one jakieś nie dokończone, ale to moje tylko zdanie, na co dzień programuje w Delphi i jestem przyzwyczajony do tego że jak cokolwiek piszę to już się nie zastanawiam jak to zrobić tylko to robię - tworzę :).
Zabrałem się za Flexa bo składnia nawet trochę podobna do Pascala, a mam zlecenie pewne i postanowiłem wykorzystać właśnie Flash / Flexy.

Jeszcze zadam jedno pytanie bo :)

ExternalInterface.call('eval','(document.getElementById("XX").innerHTML="inny tekst" )');

zmienia tekst w tagu o ID XX i to już działa.
Pytanie jak dostać się do TAGa o IFrame wyżej?, czyli jak coś zadziałać na tzw ramce rodzicu, bo tam muszę poszukać pewnych danych.
Chodzi o to że jest ramka:

<iframe src="http://strona/cos.html" id="rama" frameborder="0" height="1408" scrolling="auto" width="100%"></iframe>

a w niej w tym cos.html jest osadzona moja aplikacja Flex, i teraz jak poruszać się z zewnątrz tej ramki?
Olga Grabek

Olga Grabek Senior Software
Engineer

Temat: jak pomieszać Flexem w HTMLu...

W iframe odwołanie do rodzica (dokumentu, w którym jest osadzona ramka) możesz uzyskać tak:

parent.document.getElementById('elementId')
Olga Grabek edytował(a) ten post dnia 12.11.10 o godzinie 13:06
Piotr Bartkowski

Piotr Bartkowski zawód:
Technik-Informatyk

Temat: jak pomieszać Flexem w HTMLu...

...i tu jest tzw pies pogrzebany. Napisałem też przez parent.doc.... i nadal nie działa jak powinno, ale znalazłem Console w przeglądarce Chrome i otrzymuję taki komunikat:
"Unsafe JavaScript attempt to access frame with URL http://strona.pl/ frame with URL http://pomocnik.pl/cos.html. Domains, protocols and ports must match."
Wychodzi na to że skrypt w ramce niema pozwolenia na dostęp do ramki rodzica.:(

Czy ma może ktoś jakiś pomysł? jak to obejść, wystarczyłby mi nawet odczyt z ramki rodzica.

Następna dyskusja:

Szukam pracy jak Flex Devel...




Wyślij zaproszenie do