Иногда возникает исключение с нулевой ссылкой

#javascript #asp.net

#javascript #asp.net

Вопрос:

 <script language="javascript">
    res = "amp;res=" screen.width "x" screen.height "amp;d=" screen.colorDepth
        top.location.href="Login.aspx?action=set" res
    </script>
Source Error:
An unhandled exception was generated during the execution of the current web request,Information regarding origin and location exception can be identified using the exception stact trace below.

Stack trace:

[Null ReferenceException: object reference not set to an instance of an object.]
page_Load(object sender EventArgs e) 143
and next from System.Web
 

В зависимости от разрешения экрана я настраиваю веб-страницу входа в систему. Как мне избежать исключения с нулевой ссылкой?

Комментарии:

1. Где вы его берете? Не могли бы вы опубликовать какой-нибудь stacktrace, пожалуйста?

2. в каком браузере вы получили эту ошибку?

3. пожалуйста, опубликуйте свой код события загрузки страницы

Ответ №1:

Вероятно, вам следует рассмотреть возможность использования макета страницы на основе потока, который автоматически настраивается. Однако мне приходилось делать что-то подобное в прошлом, и хитрость заключается в том, чтобы поместить код изменения размера в тайм-аут:

 setTimeout(function() {
    res = "amp;res=" screen.width "x" screen.height "amp;d=" screen.colorDepth
    top.location.href="Login.aspx?action=set" res
}, 0);
 

Это требуется, потому что код скрипта не выполняется детерминированно. Иногда оно запускается до того, как размеры экрана будут вычислены и заполнены. Другие инструменты Ajax, такие как jQuery, решают именно эту проблему, помещая код инициализации страницы в специальный обработчик загрузки.

Комментарии:

1. но на странице aspx.cs в событии Page_Load я проверяю, если (запрос. Строка запроса [«действие»] != null) Сеанс [«ScreenResolution»] = Запрос. Строка запроса [«res»] . toString(); } Тогда также возникает исключение