Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   не работает скрипт в опере (https://javascript.ru/forum/events/14939-ne-rabotaet-skript-v-opere.html)

SunYang 06.02.2011 18:59

не работает скрипт в опере
 
Перенес шаблон на новую версию движка, вдруг перестал работать скрипт позиционирования дивки в зависимости от разрешения.
На эксплорере и мозиле работает, на опере перестал почему-то.
вот эта дивка:
<div id="shopcart" align="right" style="padding-top:85px; padding-right:135px;">...</div>

внизу страницы разместил код:

if (window.screen.width == "800") document.all.shopcart.style.paddingRight = "65"
if (window.screen.width == "1024") document.all.shopcart.style.paddingRight = "10"
if (window.screen.width == "1152") document.all.shopcart.style.paddingRight = "135"
if (window.screen.width == "1280") document.all.shopcart.style.paddingRight = "265"


почему он может не работать в опере?:blink:

Amphiluke 06.02.2011 19:34

Первым делом это
Цитата:

Сообщение от SunYang
document.all.shopcart

заменить на это:
document.getElementById("shopcart")


Далее, везде указать единицу измерения
Цитата:

Сообщение от SunYang
...paddingRight = "265px"


SamWolf 14.06.2012 20:36

Вложений: 1
У меня аналогичная ситуация все работает только в ИЕ а на остальных браузерах не работает. Может кто поможет (комбинировал уже очень много вариантов,тот что выше не помог.

код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>ID</title>
</head>
<body style="text-align: center"  >
    <img id="myimg" src="image/images.jpg" />
    <!--<img src="leftbblok.jpg"-->
    <h2 id="text">
        First car</h2>
    <h2 id="H1" onmouseover="javascript: fn()">
        Second car
    </h2>
    <h2 id="H2">
        Three car</h2>
    <script type="text/javascript">
        document.getElementById("text").onmouseover = function () {
            var x = document.all.myimg;
            x.src = "image/untitlede.png";
        }
        function fn() {
            var x = document.all.myimg;
            x.src = "image/untitledr.png"
        }

        document.getElementById("H2").onmouseover = function fnfpto() {
            var x = document.all.myimg;
            x.src = "image/images.jpg";
        }
 //    function text.onclick() {alert("message"); }
       
    </script>
</body>
</html>

devote 14.06.2012 21:29

SamWolf,
Не используйте вы document.all это устаревшая возможность, которая совсем в будущем исчезнет во всех браузерах
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>ID</title>
</head>
<body style="text-align: center"  >
    <img id="myimg" src="http://javascript.ru/forum/images/smilies/sad.gif" />
    <!--<img src="leftbblok.jpg"-->
    <h2 id="text">
        First car</h2>
    <h2 id="H1" onmouseover="javascript: fn()">
        Second car
    </h2>
    <h2 id="H2">
        Three car</h2>
    <script type="text/javascript">
        document.getElementById("text").onmouseover = function () {
            var x = document.getElementById('myimg');
            x.src = "http://javascript.ru/forum/images/smilies/smile.gif";
        }
        function fn() {
            var x = document.getElementById('myimg');
            x.src = "http://javascript.ru/forum/images/smilies/victory.gif"
        }
 
        document.getElementById("H2").onmouseover = function fnfpto() {
            var x = document.getElementById('myimg');
            x.src = "http://javascript.ru/forum/images/smilies/blink.gif";
        }
 //    function text.onclick() {alert("message"); }
        
    </script>
</body>
</html>

SamWolf 15.06.2012 00:08

Спасибо за совет но к сожалению на мозиле этот код не работает и несколько похожих тоже (все включено и разрешено)

devote 15.06.2012 00:13

Цитата:

Сообщение от SamWolf
но к сожалению на мозиле этот код не работает

Только что проверил на мозиле, все работает идеально. Просто видимо вы что-то делаете не так. Либо привели не полный код того что у вас происходит. И не забывайте, что одна ошибка где-то может остановить работу других скриптов.

SamWolf 15.06.2012 00:53

Получаеться что мозила работает только с ID-идентификаторами а с колекцыями она не дружит:dance:

bes 15.06.2012 09:13

Цитата:

Сообщение от SamWolf
Получаеться что мозила работает только с ID-идентификаторами а с колекцыями она не дружит

Что ж не дружит-то, дружит.
Наверное вы в коде обработчиков дополнительно работаете с объектом события, а сам объект не передаёте, FF не работает с объектом event, она работает с тем, что было передано в качестве первого параметра.
<span style="background: lightgrey">over</span>

<script>
window.onload = function () {
  var span = document.getElementsByTagName('span')[0];

  span.onmouseover = function() {
    alert(event.clientX);//не работает
  }

}
</script>


<span style="background: lightgrey">over</span>

<script>
window.onload = function () {
  var span = document.getElementsByTagName('span')[0];

  span.onmouseover = function(e) {
    alert(e.clientX);//работает
  }

}
</script>

SamWolf 15.06.2012 18:29

Хорошо, а как в FF найти "виновника собития" типа:
var x= window.event.srcElement;

Понимаю что способ старенький , но все-же.
:help:

bes 15.06.2012 19:14

function(e) { var target = e.target


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