Ошибка 'Недействительного аргумента' в IE, в номере строки, который не существует

Написание интерфейса до того, как он понадобится (либо для тестирования, либо для архитектуры), является излишним.

Кроме того, написание интерфейса вручную - пустая трата времени. Вы можете использовать рефакторинг Resharper «Pull Members», чтобы позволить ему создать новый интерфейс из определенного класса в считанные секунды. Другие инструменты рефакторинга, которые интегрируются с IDE, также должны иметь аналогичную функциональность.

7
задан 4 revs 2 October 2010 в 20:46
поделиться

5 ответов

Механизм Javascript IE отвратителен, когда дело касается отладки. Вы можете попробовать включить отладку скриптов в дополнительных параметрах, а затем, если у вас установлена ​​Visual Studio, она перейдет к месту ошибки ... если вам повезет. В других случаях вы ничего не получаете, особенно если код был eval () 'ed.

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

11
ответ дан 6 December 2019 в 06:50
поделиться

Практически невозможно отладить это без живого примера, но одна вещь, которая часто вызывает ошибку «Недопустимый аргумент» в Internet Explorer, - это попытка установить неправильное значение для свойства стиля.

Примерно так:

document.getElementById("foo").style.borderWidth = bar + "px";

когда "bar" имеет значение null, или undefined, или является строкой "grandma", это вызовет его, поскольку "grandmapx" не является допустимым значением для свойства стиля borderWidth.

5
ответ дан 6 December 2019 в 06:50
поделиться

Попробуйте использовать Microsoft Script Debugger или DebugBar ( http://www.debugbar.com ), которые могут дать вам несколько лучших инструментов отладки IE6. Они всегда помогают мне с IE6.

Кроме того, происходит ли это в более новых версиях IE или только в IE6?

6
ответ дан 6 December 2019 в 06:50
поделиться

I run into this problem a lot too, and I've also resorted to commenting everything out until I find the problem. One thing that I find to be useful is to add a try/catch block to every javascript method. Sometimes I add an alert to tell what method the error came from. Still tedious, but easier than trial and error commenting. And if you add them every time you write a new method it saves a lot of time in the event errors like those occur.

function TestMethod()
{
    try
    {
        //whatever
    }
    catch (ex)
    {
        ShowError(ex.description);
        //alert("TestMethod");
    }
}
1
ответ дан 6 December 2019 в 06:50
поделиться

Другая возможность:

Я много занимаюсь разработкой между двумя компьютерами, дома и на работе, поэтому я часто пишу себе по электронной почте или загружаю страницы с сервера для работы. Недавно я понял, что Vista имеет обыкновение в одностороннем порядке применять блокировку к определенным файлам, когда они загружаются определенным образом, без уведомления меня об этом.

В результате, например, HTML-страница хочет получить доступ к файлу .js в своем заголовке, но у нее нет разрешения на доступ к локальным файлам. В этом случае не имеет значения, что вы пишете в файле .js, браузер никогда его даже не прочитает, и в результате возникнет неприятная ошибка Line: 0 .

Поэтому, прежде чем искать в коде ошибки, проверьте свойства своей HTML-страницы и посмотрите, не заблокирована ли она ОС ....

0
ответ дан 6 December 2019 в 06:50
поделиться
Другие вопросы по тегам:

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