Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> document.getElementById('channel_list'); 
:(
    Опции темы
okulski
Дата 24.6.2010, 02:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 7.8.2007

Репутация: нет
Всего: нет



приветствую всех

помогите пожалуйста

код 
Код


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- <link rel="stylesheet" type="text/css" href="ch.css"> -->
<!-- <script src="ch.js"></script> -->

<script>



var channelNames = new Array(
"1 cvbvc",
"2 fdgfdg",
"4 Enter fdgfdg",
"5 fdgdf",
"28 1",
"8 2",
"1 cvbvc",
"2 fdgfdg",
"4 Enter fdgfdg",
"1 cvbvc",
"2 fdgfdg",
"4 Enter fdgfdg",
"5 fdgdf",
"28 1"
);

//var channelCount = channelNames.length;
var channelCount = 9;
var channelCurrent = 1;
var mode = 'preview'; /* Mayby fullscreen preview*/
var channelbaseurl = 'udp://224.1.1.'

//var stb_media= new Stb_Media();
//var stb=new Stb();
//var webbrowser=new Webbrowser();

//var stb;
//var stb_media;

var tv;
var firstkey = false;




function stbObjects()
{

if (window.navigator.appName == 'Netscape')
return false;
if(typeof(stb) =='undefined') stb=new Stb();
if(typeof(stb_media) =='undefined') stb_media=new Stb_Media();
if(typeof(webbrowser)=='undefined') webbrowser=new Webbrowser();

if(typeof(stb) =='undefined') {window.alert('Error: check of plugins Stb failed'); return false;}
if(typeof(stb_media) =='undefined') {window.alert('Error: check of plugins Stb_Media failed'); return false;}
if(typeof(webbrowser)=='undefined') {window.alert('Error: check of plugins Webbrowser failed'); return false;}

return true;
}



function initTV ()
{

tv=new Object();

if (!stbObjects()) return false;

tv.nameDiv = document.getElementById('channel_name');
tv.channelCount = channelCount;
tv.channelCurrent = channelCurrent;
tv.channelListItemTop = 0;
tv.state = 'idle';
tv.mode = mode;
tv.channelbaseurl = channelbaseurl;
stb.volup();
stb.voldown();

tv.volup = function ()
{
stb.volup();
}

tv.voldown = function ()
{
stb.voldown();
}

tv.channelStop = function ()

{
if (!stbObjects()) return false;
if (stb_media.eventCode) stb_media.stop();
this.updateMode();
return true;
}



tv.channelPlay = function ()
{
if (!stbObjects()) return false;
if (this.channelCurrent < 1 || this.channelCurrent > 255 )
{
window.alert('This version accept channel only in 1..255 range');
return false;
}
stb_media.play(this.channelbaseurl + this.channelCurrent + ':1234');
this.updateMode();
return true;
}
tv.setMode = function (mode)
{
this.mode = mode;
this.updateMode();
}


tv.updateMode = function ()
{

if (!stbObjects()) return false;
if (this.mode == 'fullscreen')
{
document.getElementById("channel_list").style.display = 'none';
document.getElementById("preview" ).style.display = 'none';
stb_media.setTransparentColor(0x000000);
stb_media.setPIG(true,800,600,0,0);
//stb_media.setTransparentColor(0xffC0C0C0);
//stb_media.setAlphaLevel(0);
//stb_media.setPIG(false);
}


if (this.mode == 'preview')
{
document.getElementById("channel_list").style.display = 'block';
document.getElementById("preview" ).style.display = 'block';
stb_media.setTransparentColor(0x000000);
stb_media.setAlphaLevel(255);
stb_media.setPIG(true,300,200,350,100);

}
return true;
}



tv.setChannel =
function (channel)
{
if (channel == this.channelCurrent) return true;
this.channelStop();
channel = (channel <= this.channelCount)?(channel):(this.channelCount);
this.channelCurrent=channel;
this.drawSelectedChannel();
this.channelPlay();
this.updateMode();
this.displayChannelName();

return true;
}



tv.displayChannelName =
function ()
{
if (this.mode == 'fullscreen')
{

//this.nameDiv.innerHTML = channelNames[this.channelCurrent - 1];
//this.nameDiv.style.display = 'block';

document.getElementById("channel_name").style.display = 'block';

setTimeout("document.getElementById('channel_name').style.display = 'none'", 5000);
}

return true;
}



tv.drawSelectedChannel =
function ()
{
/*
this.channelListItemTop = 75 - (this.channelCurrent - 1) * 60;
channelItems = document.getElementsByTagName('span');
for ( i = 0 ; i < channelItems.length ; i ++ )
{
class = channelItems[i].getAttribute('class');
if ( class && ( class == 'channel' || class == 'channel_selected' ))
{
channelItems[i].style.top = this.channelListItemTop + 'px';
if (channelItems[i].getAttribute('id') == 'channel' + this.channelCurrent )
channelItems[i].setAttribute('class', 'channel_selected')
else
channelItems[i].setAttribute('class', 'channel')
}
}
*/
return true;
}



tv.nextChannel =
function ()
{
channel = this.channelCurrent;
channel ++;
// Return to first if over last channel
channel = (channel > this.channelCount)?(1):(channel);
this.setChannel(channel);
}

tv.prevChannel =
function ()
{
channel = this.channelCurrent;
channel --;
// Return to first if over last channel
channel = (channel < 1)?(this.channelCount):(channel);
this.setChannel(channel);
}
return tv;
}


function keyHandler(event)
{

var key = event.keyCode ? event.keyCode : event.which;

//var key = event.keyCode > 0 ? event.keyCode : event.charCode;



if ( firstkey )
{
if ( key <= 0x39 && key >= 0x30 ) { tv.setChannel((firstkey - 0x30)*10 + key - 0x30 ); firstkey = false; }
else firstkey = false;
}
else if ( key <= 0x39 && key >= 0x30 ) firstkey = key ;



switch (key)
{


case 0x30: // 0
break;
case 0x31: // 1
break;
case 0x32: // 2
break;
case 0x33: // 3
break;
case 0x34: // 4
break;
case 0x35: // 5
break;
case 0x36: // 6
break;
case 0x37: // 7
break;
case 0x38: // 8
break;
case 0x39: // 9
break;



case 13: // Enter
tv.setMode('fullscreen');
tv.displayChannelName();
break;

case 8: // Del
break;

case 113: // Back
tv.setMode('preview');
break;



case 38: // Up
case 33: // Channel +
tv.nextChannel();
break;
case 40: // Down
case 34: // Channel -
tv.prevChannel();
break;



case 37: // Left
tv.voldown();
break;
case 39: // Right
tv.volup();
break;



default:
break;
}

}



function initPage()
{


document.addEventListener( "keypress", keyHandler, false );


if(typeof(tv) =='undefined') tv=initTV();

channel_list = document.getElementById('channel_list');
channelListItemTop = 75 - (channelCurrent - 1) * 60;

for ( i = 1 ; i <= tv.channelCount ; i ++ )
{

item = document.createElement('span');
item.setAttribute('class', ((i == channelCurrent)?('channel_selected'):('channel'))); // эта строка возможно неправильна
//item.setAttribute('class', 'channel'); 
item.setAttribute('id', 'channel'+i);
item.style.top = channelListItemTop + 'px';

text = document.createTextNode((channelNames[i-1] != "" && typeof(channelNames[i-1]) !='undefined')?channelNames[i-1]:i);
item.appendChild(text);

channel_list.appendChild(item);


alert(item);

item = document.createElement('br');
channel_list.appendChild(item);

}

if (!stbObjects()) return false;
tv.channelPlay();

}



function exitPage()
{
if (!stbObjects()) return false;
stb_media.stop();
stb_media.setAlphaLevel(255);
stb.save_vol();
}



window.onunload=exitPage(); 
window.onload=initPage(); 
//window.onkeyup=keyHandler(event);


</script>
<style>

#channel_list
{
padding: -100px;
width:220px;
height:300px;
overflow: hidden;
font-size:20px;
text-align:center;
margin-left:40px;
margin-top:40px;
padding: 10px;
border: 3px solid red; 
}
span.channel
{
position: relative;
top: -250px;
left: 25px;
width: 150px;
height: 30px;
margin-left: 10px;
font-size: 20px;
text-align: center;
vertical-align: middle;
color: black;
background-color: white;
border: 2px solid white;
display: block;
}
span.channel_selected
{
position: relative;
top: -250px;
left: 25px;
width: 173px;
height: 50px;
font-size: 24px;
text-align: center;
vertical-align: middle;
color: white;
background-color: green; //black
border: 2px solid white;
display: block;
}
div#channel_name
{
position: absolute;
display: none;
font-size: 50px;
width: 400px;
height: 100px;
left: 100px;
top: 50px;
z-index: 10;
border: 2px solid white; 
color: #00FF00;
background-color: #101010;
}

div#preview
{
position: absolute;
width: 304px;
height: 206px;
left: 348px;
top: 96px;
z-index: 10;
border: 2px solid white;
background-color: #000000;

}

body
{
background-color: #000000;
}

</style>


</head>

<body bgcolor="#000000">

<div id="channel_name"></div>
<div id="channel_list"></div>
<div id="preview"></div>


</body>
</html>






проблема с данной страничкой 
не генерируется список каналов в channel_list

channel_list = document.getElementById('channel_list'); - возвращает почему то нуль

а вот эта строка в коде работает document.getElementById("channel_name").style.display = 'block';


item.appendChild(text); - говорит не поддерживается объектом
channel_list.appendChild(item); тож не работает.

 
PM MAIL   Вверх
iluvatar
Дата 24.6.2010, 16:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 266
Регистрация: 17.9.2007

Репутация: нет
Всего: 4



PM MAIL ICQ   Вверх
okulski
Дата 24.6.2010, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 7.8.2007

Репутация: нет
Всего: нет



не догнал
я не силён в яваскрипте

перенёс document.getElementById('channel_list');  в tv.функция(), работает но только после первого переключения канала.....

да и по идее при загрузке должен стартовать канал по умолчанию а этого не происходит.
PM MAIL   Вверх
iluvatar
Дата 24.6.2010, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 266
Регистрация: 17.9.2007

Репутация: нет
Всего: 4



вместо 
window.onunload=exitPage(); 
window.onload=initPage(); 

пишем
window.onunload=exitPage; 
window.onload=initPage; 
PM MAIL ICQ   Вверх
okulski
Дата 25.6.2010, 03:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 7.8.2007

Репутация: нет
Всего: нет



блин всё что угодно мог подумать но не на такую мелочь.......

огромное спасибо!!!! 
3 дня код конопачу ...........
PM MAIL   Вверх
iluvatar
Дата 29.6.2010, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 266
Регистрация: 17.9.2007

Репутация: нет
Всего: 4



юзайте дебаг
например, здесь курсор дошел бы сначала до строчки 
window.onunload=exitPage(); 
потом перешел бы в метод exitPage();
и только потом на строчку
window.onload=initPage();

Добавлено через 38 секунд
А еще там вверху есть опция "пометить вопрос как решеный".
Смело жмите на него, если ваша проблема решена.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0816 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.