Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   getURL('javascript') - срабатывает некорректно (http://www.flasher.ru/forum/showthread.php?t=135104)

djyamato 15.01.2010 19:59

getURL('javascript') - срабатывает некорректно яваскрипт
 
Вложений: 1
Здравствуйте
Есть яваскрипт который открывает неблокируемый попап
если на странице создать ссылку при нажатии на которую запускается этот скрипт - все отлично - попап открывается а вот если из флэша использовать getURL - блокируется попап

P.S. скрипт взял отсюда http://www.htmlweb.ru/java/js.php

код флэшки
Код AS1/AS2:

BTN.onPress=function(){
        getURL('javascript:InWin("cookie.php");');
}

Код страницы
Код:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r" />
<title>getURL</title>
<script type="text/javascript" src="js/code.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="livejasmin.js"></script>
<script type="text/javascript" src="js.js"></script>
</head>
<body bgcolor="#ffffff">
<A Href="cookie.php" onclick='alert("this="+this);return InWin(this);' title="Пример использования Cookie на Java Script"><P class=ex>ОТСЮДА СРАБАТЫВАЕТ !!!</A>
<!--url's used in the movie-->
<!--text used in the movie-->
<!-- saved from url=(0013)about:internet -->
<div style="z-index: -1; width:520px; float:left; border-top:1px solid white; border-right:1px solid white; border-left:1px solid white;">
        <object width="520" height="420" style="position:relative; z-index:1;">
                <param name="movie" value="getURL.swf">
                <embed src="getURL.swf" wmode="opaque" style="position:relative;" width="520" height="420" flashvars="file=instrument.flv"></embed>
        </object>       
</div>
</body>
</html>


Hauts 15.01.2010 20:15

Используйте SWFObject для вставки флэшки на страницу.
Используйте ExternalInterface для работы с яваскриптом.

Код AS1/AS2:

import flash.external.*
BTN.onPress=function(){
        ExternalInterface.call("InWin", "cookie.php");
}

Тестируйте не локально.

djyamato 15.01.2010 20:44

Цитата:

Сообщение от Hauts (Сообщение 879416)
Используйте SWFObject для вставки флэшки на страницу.
Используйте ExternalInterface для работы с яваскриптом.

Код AS1/AS2:

import flash.external.*
BTN.onPress=function(){
        ExternalInterface.call("InWin", "cookie.php");
}

Тестируйте не локально.

Спасибо но пока все это не помогло.

Кстати - подскажите пожалуйста способ для AS3 - тоже ExternalInterface ?
И еще вопрос: в ДЕНВЕРЕ я могу тестировать считая что это не локально ?

Hauts 15.01.2010 20:52

Насчет ас3 — не знаю, если честно.
Денвер — да, сойдет.

Сообразил. У вас там должен объект передаваться, со свойством href. А вы пытались просто строчку передать. Попробуйте так:
Код AS1/AS2:

import flash.external.*
BTN.onPress=function(){
        ExternalInterface.call("InWin", {href:"cookie.php"});
}

Или допишите в js.js функцию:
Код:

function InWinFromFlash(a){
    return InWin({href:a});
}

И вызывайте ее, как я написал в прошлом сообщении.

djyamato 16.01.2010 01:10

Не работает
К сожалению блокируются попапы вызванные из флэшки :( в ИЕ8
вот ссылка http://divisionby0.org/web_Portfolio...S3/getURL.html

добавил трассировку значений в код яваскрипта и в зависимости от способа запуска (нажатие на ссылку или вызов из флэша) разные значения

Код:

function InWin(a){
alert('a='+a+"  a.href="+a.href);
if (a.href) a=a.href;
alert('making window');
jtop=window.open(a,'Пример', 'height=768,width=1024,location=no,toolbar=no,directories=no,menubar=no,status=yes,scrollbars=1,resizable=yes');
jtop.focus();
jtop.name='example';

return false;
}
function InWinFromFlash(a){
    return InWin({href:a});
}


во флэше
Код AS1/AS2:

ExternalInterface.call("InWinFromFlash", "http://divisionby0.org/web_Portfolio/siddartha/AS3/cookie.php");
/////////////////////////////////

------------------------------------------------------------------------------------------------------------

Вот я думаю в чем причина- если нажать на кнопку которая уже есть на стэйдже то даже такой скрипт сработает
Код:

<script>
  var openPopup = function (img) {
    window.open(img, "picture", "menubar=0,resizable=1,width=680,height=790");
  }
 </script>

если вот так его из флэша запустить
Код AS1/AS2:

b.onRelease = function () {    
    // если публикуется под флэш ниже восьмой версии, или под АС1 - оставить только getURL
    if (ExternalInterface.available) {
          ExternalInterface.call("openPopup", "testPage.html");
    } else {
                var Page='testPage.html';
        getURL("javascript:openPopup('"+Page+"');void(null);");
    }
}


И в ИЕ8 и в ФФ3 попап окно не блокируется

а вот если эту же кнопку/мувик изначально не иметь а аттачить ее из библитеки то ИЕ8 блокирует попап


Часовой пояс GMT +4, время: 06:53.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.