|
Тема
|
Някой да е по-наясно с DOM на Netscape 6/7
|
|
Автор |
Byd™ ((Nyakoj)) |
Публикувано | 28.07.03 21:27 |
|
Здравейте,
имам следния проблем:
Това е HTML-a:
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<meta http-equiv="imagetoolbar" content="no">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<meta http-equiv="Content-Language" content="bg">
<style type="text/css">
.SubHMarquee
{font-family: Arial; font-size: 7pt; font-weight: bold; color: #000000; text-align: left; font-style: italic; text-decoration: none}
</style>
<TITLE> test </TITLE>
<script language="JavaScript">
<!--
var MarqueeHTML="<nobr>Alabala, alabala - Retrieves the width of the object without taking into account any margin, border, scroll bar, or padding that might have been applied to the object. - I oshte alabala....<\/nobr>";
var MxLoc=0;
var VisibleWidth;
var ScrollObjW;
var EndLeftPos;
var ScrollStep=1;
var ScrollSpeed=50;
function ScrollMarquee() {
if(isNaN(window.innerWidth)){VisibleWidth=document.body.clientWidth;} //IE
else{VisibleWidth=window.innerWidth;} //NS
MxLoc=VisibleWidth;
document.getElementById("SMarqueeCell").innerHTML=MarqueeHTML;
document.getElementById("SMarqueeTable").style.left=MxLoc+"px";
document.getElementById("SMarqueeTable").style.visibility="visible";
if(isNaN(window.innerWidth)){ScrollObjW=document.body.scrollWidth-VisibleWidth;} //IE
else{ScrollObjW=document.width-VisibleWidth;} //NS
EndLeftPos=-ScrollObjW;
setInterval('MMoving()',ScrollSpeed);
}
function MMoving() {
MxLoc=parseInt((MxLoc-ScrollStep),10);
document.getElementById("SMarqueeTable").style.left=MxLoc+"px";
if(MxLoc<EndLeftPos){MxLoc=VisibleWidth;}
}
//-->
</script>
</HEAD>
<BODY bgcolor="#E6E6E6" leftmargin="0" topmargin="0" onload="ScrollMarquee()">
<table height="15" border="0" cellspacing="0" cellpadding="0" style="position: absolute; left: 0px; top: 0px; height: 15; z-index: 1; visibility: hidden" id="SMarqueeTable">
<tr height="15">
<td height="15" align="left" valign="middle" class="SubHMarquee" id="SMarqueeCell"><nobr></nobr></td>
</tr>
</table>
</BODY>
</HTML>
Този HTML се отваря във фрейм, чиято ширина е твърдо 530 пиксела (<frameset cols="*,530,*">) и scrolling="no"....
Проблемът възниква, когато трябва да сметна текущата дължина на таблицата SMarqueeTable за да мога да преценя кога да започна да я скролирам отначало. Тази дължина се променя в зависимост от дължината на MarqueeHTML, която ще бъде променлива....
Във IE няма никакъв проблем: след като "напълня" таблицата и я "избутам" в десния край на видимия прозорец, разликата между текущата ширина на целия документ (document.body.scrollWidth) и ширината на видимия прозорец (document.body.clientWidth) ми дава точно тази ширина на таблицата...
Във Netscape 6/7 ширината на видимия прозорец няма грижи (window.innerWidth), обаче има проблем с ширината на целия документ:
в случая document.width (което според документацията, която открих за DOM-а би трябвало да е точно това) ми връща ширината на видимия прозорец - 530 ?!?!??
ако пък използвам document.body.scrollWidth (което пак според документацията би трябвало да си работи с NS6/7) всичко е точно както трябва да бъде, докато прозореца е с разрешени скролбарове. В моя случай обаче скролбара се налага да е забранен и тогава document.body.scrollWidth ми връща 0, независимо че таблицата "стърчи" с цялата си ширина надясно от края на видимия прозорец...
т.е. под Netscape не мога по този начин динамично да "прихвана" текущата ширина на тази таблица (SMarqueeTable)...
Този тъп проблем ми докара главоболие в последните 2 часа - какво ли не опитвах и не ще....
Някакви идеи ???????????
| |
Тема
|
Re: Някой да е по-наясно с DOM на Netscape 6/7
[re: Byd™]
|
|
Автор |
Blake (извънземен) |
Публикувано | 29.07.03 09:01 |
|
ya probvai dali nema da stane s:
document.documentElement.offsetWidth i document.documentElement.offsetHeight?
borih se predi vreme s neshto podobno i mai tva beshe tochno obekta deto e "otgovoren" za document-a... (ne me pitai otkade sam go izrovil, nemam nikvi spomeni)
Just a genius
| |
Тема
|
Re: Някой да е по-наясно с DOM на Netscape 6/7
[re: Byd™]
|
|
Автор |
desertwaste () |
Публикувано | 29.07.03 11:09 |
|
na devedge.netscape.com ima link kum dom-a na gecko.
tam mozhe da namerish otgowor na waprosa si, no informaciata tam e uzhasno razhwurliana, taka che budi po-uporit.
| |
Тема
|
Re: Някой да е по-наясно с DOM на Netscape 6/7
[re: Blake]
|
|
Автор |
Byd™ ((Nyakoj)) |
Публикувано | 29.07.03 15:21 |
|
Мнооогооо 10х
точно това е - направо ме разби с този чуден обект...
колкото документации гледах, това не го срещнах никъде.
Вече бях почнал да обмислям разни извратени начини да взема ширината на таблицата...
Благодаря още веднъж
| |
Тема
|
Re: Някой да е по-наясно с DOM на Netscape 6/7
[re: desertwaste]
|
|
Автор |
Byd™ ((Nyakoj)) |
Публикувано | 29.07.03 15:47 |
|
10x,
наминах от там още вчера, когато тази простотия ме беше изнервила тотално, но не можах да открия инфо за този извратен обект
Иначе link-a наистина е полезен и ако на някой му се налага да се оправя с Netscape и не го знае - хвърлете му едно око...
10х
| |
Тема
|
Re: Някой да е по-наясно с DOM на Netscape 6/7
[re: Byd™]
|
|
Автор |
Byd™ ((Nyakoj)) |
Публикувано | 14.09.03 02:35 |
|
Ох, айде старата песен - на нов глас
Отново същия проблем - този път с Opera 7.
Тя на всичко (включително document.documentElement.offsetWidth, document.body.scrollWidth и т.н и т.н....) си връща безотказно 530 px (освен в случаите когато не връща нищо).
И след всичкия материал, който съм преровил по въпроса от тогава насам пак не мога да изнамеря решение.
Някой да знае как мога да я намеря тази ширина (цялата) на HTML element-а в Opera???
.
The Armenian Priest wishes You a lot of good health...
| |
Тема
|
Re: Някой да е по-наясно с DOM на Netscape 6/7
[re: Byd™]
|
|
Автор |
Byd™ ((Nyakoj)) |
Публикувано | 15.09.03 02:30 |
|
Колкото по го чета , толкова по се убеждавам, че ако пича е прав значи няма начин за достъп до пълната ширина на документа в Opera...
Мамка му и парсе
.
The Armenian Priest wishes You a lot of good health...
| |
Тема
|
Re: Някой да е по-наясно с DOM на Netscape 6/7
[re: Byd™]
|
|
Автор | я (Нерегистриран) |
Публикувано | 15.09.03 10:03 |
|
function DumpProps (o, cnt)
{
for (var i in o)
o.innerHtml += i + " = " + o;
alert(o);
}
...
div id="j"
...
DumpProps(document, j)
поне ще изплюе къде какво има, понякога прави много изненадващи разкрития... малко хамалогия. Но може и да си намериш нещо, което да ти свърши работа.
| |
Тема
|
Re: Някой да е по-наясно с DOM на Netscape 6/7
[re: Byd™]
|
|
Автор |
voyager (прасе в космоса) |
Публикувано | 15.09.03 10:56 |
|
Ако ти трябва ширината на целия документ, screen.availWidth няма ли да ти свърши някаква груба работа? То скролчето е еднакво навсякъде
--
| |
|
|
|
|