Как помочь отладчику видеть мой JavaScript, или как лучше всего осуществить рефакторинг мой сценарий, чтобы помочь сделать его благоприятным для отладчика?

(put 'erase-buffer 'disabled nil)
(put 'downcase-region 'disabled nil)
(set-variable 'visible-bell t)
(set-variable 'tool-bar-mode nil)
(set-variable 'menu-bar-mode nil)

(setq load-path (cons (expand-file-name "/usr/share/doc/git-core/contrib/emacs") load-path))
 (require 'vc-git)
 (when (featurep 'vc-git) (add-to-list 'vc-handled-backends 'git))
 (require 'git)
 (autoload 'git-blame-mode "git-blame"
           "Minor mode for incremental blame for Git." t)
11
задан Chris Farmer 27 October 2009 в 21:22
поделиться

4 ответа

Я пока не могу комментировать, но, возможно, я могу помочь ответить. Как сказал qwerty, консоль firefox может быть подходящим вариантом. Я бы порекомендовал заполнить бар и получить firebug. Он ни разу не пропустил код за три года, которые я использую.

Вы также можете изменить способ добавления внедренного javascript и посмотреть, повлияет ли это на отладчик, который вы используете. (Я так понимаю, вы используете IDE Microsoft?). В любом случае, я считаю, что лучший способ внедрить javascript для IE - поместить его как appendChild в голову. В случае, если это нецелесообразно, можно использовать функцию eval (я ненавижу ее так же, как и вы). Вот мой код исправления AJAX IE, который я использую. Я использую его и для сафари, так как он ведет себя аналогично. Если вам это тоже нужно, просто измените проверку состояния браузера (document.all для IE, Safari - navigator.userAgent.toLowerCase () == 'safari';).

function execajaxscripts(obj){
    if(document.all){
        var scripts = obj.getElementsByTagName('script');
        for(var i=0; i<scripts.length; i++){
            eval(scripts[i].innerHTML);
        }
    }
}

Я никогда не использовал jquery, я предпочел прототип, а затем dojo но ... Я полагаю, это будет выглядеть примерно так:

$.get(myUrl, null, function(result) {
    $('#myselector').html(result);
    execajaxscripts(result);
});

Одна проблема в том, что ошибки отладки eval могут не обнаруживаться, поскольку он создает другой экземпляр интерпретатора. Но попробовать стоит .. а иначе. Используйте другой отладчик: D

1
ответ дан 3 December 2019 в 12:17
поделиться

Если это JavaScript, встроенный в Dynmicially HTML, я вижу, где это может быть проблемой, поскольку отладчик не увидит его в начальной нагрузке. Я удивлен, что вы можете поместить его в отдельный файл .js, и отладчик все еще не смог увидеть функцию.

Похоже, вы можете определить функцию в отдельном статическом файле, номинально «get_And_show» (или что-то, что, возможно, вложенный в пространство имен в сортировках) с параметром myurl, а затем вызвать функцию из HTML. Почему этот отключение не будет пробовать точку останова (вы пробовали что-то подобное - вопрос неясен относительно того, была ли ссылка на .js в динамическом HTML HTML, имел просто вызов Func или фактическим ссылкой на сценарии / нагрузки). ? Обязательно загрузите внешний файл сценария из «жесткой кодированной» ссылки в HTML-файле? (Источник просмотра на Robrogrogs.com/index.html - загружает файлы .js, затем запускает функцию вставки текста)

0
ответ дан 3 December 2019 в 12:17
поделиться

Может, это и рискованно, но у меня сейчас нет доступа к ИЭ для проверки. Попробуйте назвать анонимную функцию, например:

$.get(myUrl, null, function anon_temp1(result) {
    $('#myselector').html(result);
});

Я удивлен, что Firebug не поймал утверждение "отладчик". У меня никогда не было проблем, независимо от того, насколько сложен метод JS включая

.
1
ответ дан 3 December 2019 в 12:17
поделиться

Я немного неясно, что вы пытаетесь сделать, но вы можете захватить реферар с JavaScript с помощью:

document.referrer

... и передать его на сервер в вашем запросе на JS файл. Несколько способов сделать это... вот один:

<script>
 var e = document.createElement("script");
 e.src = 'someJSfile.js?referrer='+document.referrer;
 e.type="text/javascript";
 document.getElementsByTagName("head")[0].appendChild(e);
</script>
-121--2080993-

Вот метод, который можно использовать для поворота изображения в C #:

/// <summary>
/// method to rotate an image either clockwise or counter-clockwise
/// </summary>
/// <param name="img">the image to be rotated</param>
/// <param name="rotationAngle">the angle (in degrees).
/// NOTE: 
/// Positive values will rotate clockwise
/// negative values will rotate counter-clockwise
/// </param>
/// <returns></returns>
public static Image RotateImage(Image img, float rotationAngle)
{
    //create an empty Bitmap image
    Bitmap bmp = new Bitmap(img.Width, img.Height);

    //turn the Bitmap into a Graphics object
    Graphics gfx = Graphics.FromImage(bmp);

    //now we set the rotation point to the center of our image
    gfx.TranslateTransform((float)bmp.Width / 2, (float)bmp.Height / 2);

    //now rotate the image
    gfx.RotateTransform(rotationAngle);

    gfx.TranslateTransform(-(float)bmp.Width / 2, -(float)bmp.Height / 2);

    //set the InterpolationMode to HighQualityBicubic so to ensure a high
    //quality image once it is transformed to the specified size
    gfx.InterpolationMode = InterpolationMode.HighQualityBicubic;

    //now draw our new image onto the graphics object
    gfx.DrawImage(img, new Point(0, 0));

    //dispose of our Graphics object
    gfx.Dispose();

    //return the image
    return bmp;
}
-121--1189836-

Мы используем firebug для отладки javascript, запросов профиля, броска журналов и т.д. Вы можете загрузить с http://getfirebug.com/

Если firebug не показывает источник javascript, напишите URL-адрес для проверки примера.

Надеюсь, я помогал!

0
ответ дан 3 December 2019 в 12:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: