Autor Zpráva
Medvídek
Profil
Mam hlavní doménu www a subdomenu filez. Z domény www chci otevřít soubor vypis.php, který je na subdoméně filez. V souboru vypis.php mam js fci:

<script language="JavaScript">
    function funkce(vlozit) {
      window.opener.document.getElementById('urlmp3').value = vlozit;
      window.close();
    }
  </script>

a v okně, které tento skritp otevřelo mám input s id urlmp3. Skript je funkční, pokud to udělám v rámci domény www, ale ze subdomény filez už to nefunguje (Chamurappi tuším někde psal, že je komunikace mezi subdoménama blokovaná). Dá se to nějak obejít ?
imploder
Profil
Medvídek:
Nedávno jsem zkoušel různé věci s bookmarklety (tj. JS, co je uložený v záložce, a po kliknutí se provede na té stránce, která je otevřená) a když jsem na ten bookmarklet kliknul v okně s nějakou nějaké cizí stránkou, tak okno, které otevřel, na to původní okno ve window.opener vidělo.
EDIT: tak to bude jiný případ, protože skript v bookmarkletu se vlastně otevře na doméně zrovna otevřené stránky, takže obě okna měla stejné domény, zatímco tady je původní stránka na doméně www a z ní se otevírá okno se skriptem na doméně filez.
Chamurappi
Profil
Reaguji na Medvídka:
Obecně je komunikace napříč doménami blokovaná z bezpečnostních důvodů.
Bariéra mezi subdoménami jde v některých prohlížečích částečně probourat, pokud nastavíš v obou dokumentech document.domain na doménu druhého řádu. (Je to trochu alchymie.)


Reaguji na implodera:
Bookmarklet se spouští v kontextu právě navštívené stránky. Kdyby to otevřené okno opravdu nalistovávalo stránku z jiné domény, nemělo by to fungovat.
Medvídek
Profil
Chamurappi:
Chápal bych mezi doménami 2. řádu. Ale mezi subdoménama mi to přijde poněkud divné.

EDIT:
Vykašlal jsem se na to a udělal na www soubor, kde sem použil file_get_contents a funguje to.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: