Javascript-форум (https://javascript.ru/forum/)
-   Сайт Javascript.ru (https://javascript.ru/forum/site/)
-   -   Баг при выполнении JS кода (https://javascript.ru/forum/site/12658-bag-pri-vypolnenii-js-koda.html)

monolithed 27.10.2010 22:51

Баг при выполнении JS кода
 
Заметил баг при выполнении кода:

В таком случае все работает (используются HTML run дискриптор)
<script type="text/javascript">
window.onload = function(){
    var element = document.createElement('div');
    document.body.appendChild(element);

    document.onmousemove = function(event){
        event = event || event.window;
        element.innerHTML = event.clientX;
    };
};
</script>


А так не запускается вообще (используются JS run дискриптор):
window.onload = function(){
    var element = document.createElement('div');
    document.body.appendChild(element);

    document.onmousemove = function(event){
        event = event || event.window;
        element.innerHTML = event.clientX;
    };
};



хотя так все работает (используются JS run дискриптор):
alert(1)

Kolyaj 27.10.2010 22:59

Дык во втором случае нет никакого onload.

monolithed 28.10.2010 07:38

я так тоже пробовал:

var element = document.createElement('div');
document.body.appendChild(element);

document.onmousemove = function(event){
    event = event || event.window;
     element.innerHTML = event.clientX;
};

Aetae 28.10.2010 11:00

Перед запуском изначально выводилось(а вы наверняка не глядя поставили галочку "больше не показвать"):
"Вы запускаете javascript-код.

На нашем сайте выполняемый javascript-код можно свободно вставлять в комментарии, на форум и не только (читайте здесь - как).

При запуске код выполнится на отдельном домене. Как правило, это безопасно, но все равно лучше смотреть, что запускаешь.

Запустить javascript?
да\нет
Больше не показывать это сообщение при запуске javascript."

alert(location.href)


Соответственно при 'js run' в отличие от 'html run' iframe скрытый, и никакого mousemove не происходит.

monolithed 28.10.2010 13:21

Цитата:

Сообщение от Aetae
Aetae

я это все прекрасно понимаю о чем вы написали, у меня просто есть не понимание почему и тот и другой код заключены в JS run, но работает только один, это же не логично почему бы не JS run тоже не выполнять в iframe, это же можно реализовать (просто в iframe подключить дескриптор </ script>)

iframe
<html>
   <head>
      <script type="text/javascript" src="http://javascript.ru/js/исполнятемый скрипт.js"></script>
   <head>
   <body></body>
</html>

Aetae 28.10.2010 13:28

Всё логично.
js run - чтобы просто выполнять js код, именно что не загромождая пост лишним ifram'oм.
html run - если вам уже нужна какая либо работа с dom.

monolithed 28.10.2010 13:33

Цитата:

Сообщение от Aetae
html run - если вам уже нужна какая либо работа с dom.

да с удовольствием, только писать <script type="text/javascript"></script> напрягает, а в сокращенной нотации коробит

Aetae 28.10.2010 13:36

Можно вообще без run писать.)
Здесь таки форум просто, а не js редактор, со встроенным тестером.)
Кому надо тот разберётся.

Илья Кантор 28.10.2010 14:12

Вообще, есть мысль разрешить запуск кода на том же домене (т.е. на javascript.ru), но с соответствующим предупреждением в его оформлении.

Что думаете?

Gvozd 28.10.2010 14:22

Думаю, не стоит


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