Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   перемещение дива с флеш плеером uppod (https://javascript.ru/forum/css-html-internet-explorer/16649-peremeshhenie-diva-s-flesh-pleerom-uppod.html)

anurkoja 16.04.2011 12:32

перемещение дива с флеш плеером uppod
 
Тестовый скрипт: http://www.qamal.kz/audios2.php

Делаю контактоподобные аудиозаписи, т.е. кликнул на кнопку плей - под названием аудиозаписи появился плеер.
Плеер использую uppod.ru

Плеер на страницу подгружаю один, с плейлистом. Сначала пллер находится под первой аудиозаписью; под каждой другой аудиозаписью есть пустой див (место под плеер) со своим порядковым ид. По клику на кнопку play[$i] вставляю innerHTML дива, содержащего на данный момент плеер в div[$i], и очищаю же не нужный старый innerHTML.

Надеюсь, изложил понятно. Работает везде кроме ИЕ8 (в 7,6 даже не проверял ещё). В ие8 плеер переносится в нужное место, но плеер не получает параметры, поэтому вместо плеера отображается стандартная заставка.

Яваскрипт и пример по приведенному выше адресу.

Вопрос - с чем связано и как можно сделать иначе?

П.с. Конечно, можно не трогать див, содержащий пллер, а делать ремув и аппенд остальных дивов в списке, но будет мигание и скачки - яваскрипт ведь не моментально эти действия производит.

dmitriymar 16.04.2011 12:46

Цитата:

Сообщение от anurkoja
Работает везде кроме ИЕ8

странно-везде не должно
глянул на твой код после переноса и у тебя все параметры оказались в двойных кавычках
innerHTML=" 'содержимое 1' 'содержимое 2'......";

замени все двойные кавычки в описании плеера в теге объект на одинарные

anurkoja 16.04.2011 13:11

Цитата:

Сообщение от dmitriymar (Сообщение 100933)
странно-везде не должно
глянул на твой код после переноса и у тебя все параметры оказались в двойных кавычках-как такое возможно?
innerHTML=" 'содержимое 1' 'содержимое 2'......";

замени все двойные кавычки в описании плеера в теге объект на одинарные

Честно говоря, не понял.
Работает в ФФ,Опере,Хроме.
Поменял двойные на одинарные - то же самое.

Плейлист и плеер формируются так:

$playlistaj='{"playlist":[';
	for ( $i = 0; $i <= $j1; $i ++ ){
		$playlistaj_comment[$i] = ($i+1).'. '.str_replace("'", "", $audio['songer'][$i]).' - '.str_replace("'", "", $audio['name'][$i]);	
		$playlistaj.='{"file":"audios/'.$audio['link'][$i].'","comment":"'.$playlistaj_comment[$i].'"},';
	}
	$playlistaj=substr($playlistaj,0,strlen($playlistaj)-1);
	$playlistaj.=']}';
	$playlistaj=str_replace('&','',$playlistaj);


<script type="text/javascript">
	var flashvars = {'st':'/player/audio1.txt','m':'audio','file':'http://qamal.kz/audios/<?=$audio['link'][0];?>','uid':'player_main','pl':'<?=$playlistaj?>'};
	var params = {id:'player_main', bgcolor:'#ffffff', wmode:'transparent', allowFullScreen:'true', allowScriptAccess:'always'};
	new swfobject.embedSWF('http://qamal.kz/player/uppod.swf', 'player_main', '598', '50', '9.4.10.4', false, flashvars, params);

	</script>


Можно пожалуйста подробнее?

dmitriymar 16.04.2011 13:24

я с джиквери не дружу.но посмотри сам через фаирбаг что у тебя происходит. при первом появлении у тебя в контейнере описание плеера в теге объект- в двойных кавычках описание параметров.и затем ты это переносишь в другой контейнер. присвой содержимое контейнера строке и просмотри её при переносе сам всё увидишь
попробуй присвоить строке чтото типа такого
строка ="данное1"значение"данное2"з-ние"...."
и ничего не выйдет поскольку присваиваемая строка содержит в себе двойные кавычки

скриптом ты создаёшь содержимое 1 контейнера-и переносишь через innerHTML тоже содержимое,но в твоём содержимом есть двойные кавычки-вот и глючит

Маэстро 26.04.2011 11:45

Цитата:

Сообщение от anurkoja
В ие8 плеер переносится в нужное место

А зачем его "переносить" из старого места в новое? Имею ввиду не сам визуальный эффект, а перенос HTML-кода? Просто на старом месте убивайте innerHTML, а на новом формируйте его на лету, в том числе и URL-параметр для Flash Player_a.
P.S. некоторые плееры могут принимать в качестве параметра URL-файла уже после вставки в страницу и даже в процессе воспроизведения. Могут принимать и команды Play/Stop - это javascript-управляемые плееры.


Часовой пояс GMT +3, время: 18:48.