Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   "Причесал" скриптик, а он в Опере не пошел (https://javascript.ru/forum/events/1887-prichesal-skriptik-v-opere-ne-poshel.html)

Mitrandir 30.09.2008 13:37

"Причесал" скриптик, а он в Опере не пошел
 
Приветствую всех участников поистине центрального JavaScript ресурса
Рунета!

Недавно для разминки мозгов решил облагородить один скриптик написанный в старом стиле, а именно:

СТАРЫЙ КОД

<SCRIPT type="text/javascript" language="JavaScript">

  var isIE = (navigator.appName.indexOf("Microsoft Internet Explorer") != -1);
    if(isIE)
        document.write('<BGSOUND src="sound.mp3" loop="1">');

var isEmbed = ((navigator.userAgent.toLowerCase().indexOf("gecko")!=-1)||((navigator.userAgent.indexOf("Opera") != -1)))
    if(isEmbed)
        document.write('<EMBED src="sound.mp3" loop="1"><EMBED>');
</SCRIPT>


НОВЫЙ КОД
<SCRIPT type="text/javascript" language="JavaScript">
      function play(){
var isIE = (navigator.appName.indexOf("Microsoft Internet Explorer") != -1);
    if(isIE){
    var bgsound = document.createElement("bgsound");
	bgsound.src = "sound.mp3";
	bgsound.loop ="1";
	document.body.appendChild(bgsound);}

var isEmbed = ((navigator.userAgent.toLowerCase().indexOf("gecko")!=-1)||((navigator.userAgent.indexOf("Opera") != -1)))
    if(isEmbed){
      var embed = document.createElement("embed");
	  embed.src = "sound.mp3";
	  embed.loop ="1";
	  document.body.appendChild(embed);}
	  }
		</SCRIPT>
    <BODY onload = "play()">

В ОгнеЛисе и Ослике 7 скрипт сработал (не без замечаний, конечно со стороны IE7).А в Опере 9.02 - ТИШИНА и мертвые с косами стоят :) В чём тут может быть дело? Что скажут гуру в JavaScript кодинге?

ZoNT 30.09.2008 14:16

дело в настройках Оперы?

Mitrandir 30.09.2008 14:54

To ZoNT

Не знаю может и в настройках, хотя с рудиментарным document.write() всё работает на ура во всех трёх браузерах,-
значит наврядли.
2 ALL
Интересная получается картина.
Жду ваших соображений на этот счёт.

Андрей Параничев 30.09.2008 15:10

У оперы, если я не ошибаюсь, были какие-то проблемы с регистром символов при создании элемента, попробуйте так:
var embed = document.createElement("EMBED");

Mitrandir 30.09.2008 16:11

Нет регистр символов увы не помог:(
*******************************
Opera 9.02 сборка 8585,
ОС Windows XP SP 3 RUS - это я так для справки
**************************************
Пожалуйста, протестируйте кому не в напряг оба варианта скрипта,
может это кривизна моей конфы ||рук || мозгов. . Ну, а если
и других будет тоже самое, тогда косяк где-то в поддержке Оперой
объектной модели DOM Level2 так получается.

ZoNT 30.09.2008 16:14

может косяк в поддержке отдельных тэгов?

Андрей Параничев 30.09.2008 16:17

Mitrandir,
У меня работает, правда открывает через quicktimeовский встроенный плеер.

Mitrandir 30.09.2008 16:43

Ага понятно!
Что ОгнеЛису, что опере нужен этот самый apple-плагин для корректного
воспроизведения мультимедиа содержимого из тега
<embed> </embed>, следовательно при таком построении скрипта опера
с плагином почему-то не контачит - в общем, видимо косяк софтовый.
Переинсталим плагин - посмотрим на результат.
Может полегчает. :)

Mitrandir 30.09.2008 17:28

TO ALL
Да нет господа, легче не стало. Дело тут по всей видимости не в плагине,
а действительно в самой Опере, установленной у меня версии 9.02, потому
как статическую вёрстку HTML она воспринимает без проблем и сходу
запускает миниплейер -Так Вот.
**************************
Андрей Параничев,

А какая версия Оперы установлена у Вас?

ZoNT 30.09.2008 17:29

предлагаю забить на бгсаунд.
Если нужно проигрывание музыки в фоне - запусти винамп (или что-нибудь ещё).


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