форум vBSupport.ru > vBSupport.ru > Гурушник > kerk
  • »
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
 
 
 
 
kerk
k0t
 
kerk's Avatar
Default Debug JS
1

кто, чем "дебажит" яваскрипты?
ну просто интересно... =)
не считая FireBug
имеется ввиду, когда происходит какое то событие на странице, раньше выводил алертом свойства элементов, elm.id, elm.tagName и прочую лабуду
алерт надоел, пока не закроешь его, нифига не сделать на страничке
написал небольшой скриптик
HTML Code:
function kr_alert(str)
{        
     var obj_container = fetch_object('obj_container');
     if(obj_container !== null)
     {
          obj_container.parentNode.removeChild(obj_container);
     }
     var closew = function(obj)
     {
          var obj = fetch_object(obj);
          if(obj !== null)
          {
              obj.parentNode.removeChild(obj);
          }        
     }
     var div = document.createElement('div');
     div.id = 'obj_container';
     div.style.width = "230px";
     div.style.background = "#FFFFCC";
     div.style.border = "1px solid red";
     if(is_ie)
     {
           div.style.position = "absolute";
     }else{
           div.style.position = "fixed";
     }
     div.style.padding = "5px";
     div.style.zIndex = "100";
     div.title = 'Close this window';
     div.onclick = function()
     {
         closew('obj_container');
     }
     if(!str)
     {
           return;
     }else{
           div.innerHTML += str;
     }
     document.body.appendChild(div);
     center_element(div);
}
использование:
kr_alert('any string');

выводит желтое окошко с нужной мне инфой (позиционируется фиксированно)



скрипт использует некоторые функции из файла воблы vbulletin_global.js и yahoo-dom-event.js поэтому их тоже нужно подключать, но если скрипт используется на страницах форума, то они там уже есть
============
может есть более изящные решения? делитесь... =)
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
GiveMeABreak
Эксперт
 
GiveMeABreak's Avatar
Default
1

Довольно давно использую сие функцию, но потребовалось её использовать не в вобле, вот переписал для работы без YUI и vBulletin

PHP Code:
function kr_alert(str)
{        
     var 
obj_container document.getElementById('obj_container');
     if(
obj_container !== null)
     {
          
obj_container.parentNode.removeChild(obj_container);
     }
     var 
closew = function(obj)
     {
          var 
obj document.getElementById(obj);
          if(
obj !== null)
          {
              
obj.parentNode.removeChild(obj);
          }        
     }
     var 
div document.createElement('div');
     
div.id 'obj_container';
     
div.style.width "230px";
     
div.style.background "#FFFFCC";
     
div.style.border "1px solid red";
     if(
'\v'=='v')
     {
           
div.style.position "absolute";
     }else{
           
div.style.position "fixed";
     }
     
div.style.padding "5px";
     
div.style.zIndex "100";
     
div.title 'Close this window';
     
div.style.position 'absolute';
     
div.style.top '50%';
     
div.style.left '50%';
     
div.style.marginLeft '-125px';
     
div.style.marginTop '-100px';

     
div.onclick = function()
     {
         
closew('obj_container');
     }
     if(!
str)
     {
           return;
     }else{
           
div.innerHTML += str;
     }
     
document.body.appendChild(div);

 
 
kerk
k0t
 
kerk's Avatar
Default
0

Quote:
Originally Posted by GiveMeABreak View Post
if('\v'=='v')

а что сие условие означает?
и когда оно будет равным?
 
 
Rpsl
Продвинутый
 
Rpsl's Avatar
Default
1

не понимаю зачем изобретать велосипед, стандартный console.log() поддерживается вроде даже в ie, не говоря об остальных броузерах, а прикручиваение модных фишичек к выводу дебага, мне кажется перебор.

PHP Code:
function l( object )
{
    try
    {
        
console.log( object );
    }
    catch(
e)
    {
        
alert( object );
    }

}; 
 
 
kerk
k0t
 
kerk's Avatar
Default
0

Quote:
Originally Posted by Rpsl View Post
не понимаю зачем изобретать велосипед
затем, что велосипед не "едет", как надо мне
читай внимательно и вдумчиво первый пост
Quote:
Originally Posted by kerk View Post
раньше выводил алертом
=>
Quote:
Originally Posted by Rpsl View Post
alert( object );
во многих случаях недостаточно простого лога в дебаге, мне нужно видеть результат на странице в том формате, который нужен мне
 
 
Rpsl
Продвинутый
 
Rpsl's Avatar
Default
0

kerk, да я понял тебя прекрасно, мне просто честно не понятно, какие принципиально новые вещи можно вывести через твой скрипт и нельзя через console.
если это только дело вкуса, то ок. каждому удобно свое и точка.
Quote:
Originally Posted by kerk View Post
раньше выводил алертом
=>
Цитата:
Сообщение от Rpsl
alert( object );
try ... catch - что бы оставленные дебаги на страницах не забывать.
 
 
GiveMeABreak
Эксперт
 
GiveMeABreak's Avatar
Default
0

Quote:
Originally Posted by kerk View Post
а что сие условие означает? и когда оно будет равным?
http://habrahabr.ru/blogs/javascript...omment_1328945


Да можно вообще удалить эту строчку, т.к position все равно устанавливается другой ниже в коде.

PHP Code:
function kr_alert(str)
{        
     var 
obj_container document.getElementById('obj_container');
     if(
obj_container !== null)
     {
          
obj_container.parentNode.removeChild(obj_container);
     }
     var 
closew = function(obj)
     {
          var 
obj document.getElementById(obj);
          if(
obj !== null)
          {
              
obj.parentNode.removeChild(obj);
          }        
     }
     var 
div document.createElement('div');
     
div.id 'obj_container';
     
div.style.width "230px";
     
div.style.background "#FFFFCC";
     
div.style.border "1px solid red";
     
div.style.padding "5px";
     
div.style.zIndex "100";
     
div.title 'Close this window';
     
div.style.position 'absolute';
     
div.style.top '50%';
     
div.style.left '50%';
     
div.style.marginLeft '-125px';
     
div.style.marginTop '-100px';

     
div.onclick = function()
     {
         
closew('obj_container');
     }
     if(!
str)
     {
           return;
     }else{
           
div.innerHTML += str;
     }
     
document.body.appendChild(div);

GiveMeABreak добавил 25.08.2010 в 11:23
Забыл добавить код в тег php, жаль что нельзя посты редактировать.

Last edited by GiveMeABreak : 08-25-2010 at 12:23 PM. Reason: Добавлено сообщение
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 03:37 AM.


Powered by vBulletin® Version 3.7.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Loading...