Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   помогите с кроссбраузерностью (https://javascript.ru/forum/misc/13358-pomogite-s-krossbrauzernostyu.html)

Pegas 28.11.2010 00:02

помогите с кроссбраузерностью
 
Нашел в интернете скрипт видеоплеера с плейлистом для RuTube, скрипт работает в FF, но отказывается работать в IE, насколько я понял загвоздка в addEventListener, решить проблему не получилось в связи с моей неопытностью. Помогите пожалуйста, скрипт очень нужен, хотелось бы чтобы он корректно работал во всех популярных браузерах.

Rutube.js
var a, b, kuda, carPos = 0;
var Swfplay = document.createElement('embed');
var osn = document.write('<style type="text/css">#panel #pL {left:0px; -moz-user-select:none;}#panel #pR {right:0px; -moz-user-select:none;}#osnova {background:#000; margin:auto; width:500px; border:2px solid #333;}#panel {background:#000; width:420px; padding:0 40px 10px 40px; white-space:nowrap; position:relative; overflow:hidden; border-top:1px solid #333; text-align:left;}#player, #panel, #osnova {-moz-user-select:none;}#panel #pL, #panel #pR {background:#000; position:absolute; padding:5px; top:0px; height:40; opacity:0.9; filter:alpha(opacity=90);}#panel input {background:#000; position:relative; margin:0px 2px; padding:5px; text-decoration:none; border:1px solid #333;  color:#80BF56;}#panel input:hover {background:#80BF56; color:#EFEFEF;}#playlist {position:relative; margin: auto; top:5px;}</style><div id="osnova"><div id="player"></div><div id="panel"></div></div>');
var List = document.createElement('div');
    List.id = 'playlist';
document.getElementById('panel').appendChild(List);
document.close(List);
document.getElementById('panel').innerHTML += '<div onMouseOver="Move(1)" onMouseOut="Move(0)" id="pR"><img src="right.png" alt="" /></div><div onMouseOver="Move(2)" onMouseOut="Move(0)" id="pL"><img src="left.png" alt="" /></div>';

function RutubeLink(num, url){
    var Alink = document.createElement('input');
    Alink.type = 'button';
    Alink.value = num + ' cерия';
    Alink.id = 'seria-' + num;
    Alink.name = url;
    document.getElementById('playlist').appendChild(Alink);
    var AName = document.getElementById('seria-' + num);
    AName.setAttribute("onclick","Player('seria-" + num + "'); return false;");
    AName.addEventListener("click", function(){AName.style.border = "0"}, false);
    AName.addEventListener("click", function(){Swfplay.setAttribute('flashvars','autoStart=true');}, false);
    document.close(Alink);
    Player('seria-1');
}

function Player(id){
    if(em = document.getElementsByTagName('embed')[0]){
       em.parentNode.removeChild(em);
    }
    Swfplay.type = 'application/x-shockwave-flash';
    Swfplay.src = 'http:'+'//video.rutube'+'.ru/' + document.getElementById(id).name;
    Swfplay.setAttribute('allowfullscreen','true');
    Swfplay.setAttribute('wmode','transparent');
    Swfplay.height = '400px';
    Swfplay.width = '500px';
    document.getElementById('player').appendChild(Swfplay);
    document.close(Swfplay);
    if (!em){
        return true;
    }
}

function Move(kuda){
    if (kuda == 0){
        clearTimeout(a);
        clearTimeout(b);
    }
    if (kuda == 1) {  
        if (carPos >= -2000) {  
            b = setTimeout("Move(1)", 40);  
            carPos = carPos -10;  
            document.getElementById('playlist').style.left = carPos +'px';
        } else {clearTimeout(b);}  
    }  
    else if (kuda == 2) {  
        if (carPos <= -10) {  
            a = setTimeout("Move(2)", 40);  
            carPos = carPos +10;  
            document.getElementById('playlist').style.left = carPos +'px';  
        } else { clearTimeout(a);}  
    }
}


<script type="text/javascript" src="rutube.js"></script>
<script type="text/javascript">
RutubeLink(1,'60e968007c65cd9b325a4becc2519bfb'); //ссылка на 1
RutubeLink(2,'ebd36b30f90ec5b699776871fcca9f6f'); //ссылка на 2
RutubeLink(3,'b7cee88b3d77f53e79e0b0bb51e6f6d6'); //ссылка на 3
//и так далее
</script>

monolithed 28.11.2010 00:05

Pegas Никто за вас найденные в сети скрипты разбирать не будет.

Для решения своей проблемы прочите как правильно добавлять обработчики событий

Pegas 28.11.2010 00:11

monolithed, ну неужели так сложно помочь человеку? Я 2 дня потратил пытаясь искоренить ошибку, перерыл весь инет и все безуспешно. И только после этого я решил обратиться с просьбой о помощи. Ну не изучал я Javascript, поэтому возникли сложности. Если вы из принципа не хотите рассматривать скрипт найденный в сети, то проходите мимо, спасибо за внимание.

dmitriymar 28.11.2010 00:51

сравнение -написать свой код 10 мин. разобраться в чужом подобном коде -неделя

Gvozd 28.11.2010 01:15

Цитата:

Сообщение от Pegas
Ну не изучал я Javascript, поэтому возникли сложности.

если вы не изучали и не собираетесь изучать JS, то для вас на этом форуме есть только два раздела:
Работа(там за вас сделают вашу работу. но за ваши деньги)
Оффтопик. там ваша тема абсолютно неуместна.
Так что либо вы начинаете изучать язык, и прикладываете усилия для того чтобы решить вашу проблему, либо вы платите деньги другим, кто уже потратил свое время на изучения языка, и чтобы они сделали за вас вашу работу.
Цитата:

Сообщение от Pegas
ну неужели так сложно помочь человеку?

вы так говорите как будто то, что вы просите - просто.
если бы было просто, то почему сами не сделали?
не вам судить о том, что просто, а что нет, в той области в которой вы ничего не понимаете.
но, скажу по секрету:
большинство JS-скриптов которые находятся в гугле являются морально устаревшими.
проще свой с нуля написать.
и, да: ваша задача вроде не сильно сложная(для того чтобы определить наверняка нужно ею занятся..может и етсь сложные проблемы, неочяевидыне)
НО!
для того чтобы она была простой для нас, мы потратили сотни часов на иузчения языка, и сотни, а то и тысячи часов на то, чтобы набратся опыта.
Если вы считаете, что мы должны дарить вам плоды столь усердной работы забесплатно, то идите нахуй

Pegas 28.11.2010 02:02

Цитата:

Сообщение от Gvozd (Сообщение 81075)
для того чтобы она была простой для нас, мы потратили сотни часов на иузчения языка, и сотни, а то и тысячи часов на то, чтобы набратся опыта.
Если вы считаете, что мы должны дарить вам плоды столь усердной работы забесплатно, то идите нахуй

Сразу видно куда ушли тысячи часов изучения языка, и какого именно.
Я не говорил, что мне кто-то что-то должен, я лишь попросил помочь, в моем посте также не упоминалось слово "бесплатно". Озвучьте цену. Я заходил в раздел работа, но даже приблизительных цен не нашел.

Gvozd 28.11.2010 03:32

Цитата:

Сообщение от Pegas
Я заходил в раздел работа, но даже приблизительных цен не нашел.

да
потому что согласно правилам раздела именно вы должны первыми озвучивать цену.

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

Цитата:

Сообщение от Pegas
в моем посте также не упоминалось слово "бесплатно".

если вы четко понимаете, что сами не собираетесь изучать язык, и что при этом готовы заплатить за работу специалистов, то вам следовало написать в раздел "Работа" сразу, как о нем узнали.

Итак, когда выяснилось, что вы не собираетесь изучать язык, и готовы платить за работу, предлагаю поместить заявку в разделе Работа
Не забудьте указать сумму которую готовы заплатить.

на всякий случай подскажу:
сумма менее 10$ смехотворна для любого специалиста.
школьник обладающий минимальными знаниям JS способен решить вашу задачу, и готов сделать это за меньшую сумму
но, тут такой типаж - очень редок


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