DebugBreak, не повреждающийся

Все решения здесь не предназначены для будущего (что не позволяет Apple выпускать iPad с таким же размером экрана, как у iPad 2, но с тем же разрешением, что и у iPad Mini). Поэтому у меня возникла идея:

Создать div с шириной 1 дюйм и добавить его к телу. Затем я создаю еще один div с шириной 100% и добавляю его к телу:

var div1= $("
").appendTo(document.body).width("1in"); var div2= $("
").appendTo(document.body).width("100%");

Функция jQuery width () всегда возвращает значения в пикселях, поэтому вы можете просто:

var screenSize= div2.width() / div1.width();

screenSize теперь содержит размер , доступный приложению в дюймах (однако, будьте осторожны с ошибками округления). Вы можете использовать это для размещения вашего GUI так, как вам нравится. Также не забудьте удалить ненужные div'ы после этого.

Также обратите внимание, что алгоритм, предложенный Kaspars, не только не будет работать, если пользователь запускает приложение в полноэкранном режиме, но также будет нарушен, если Apple исправит интерфейс браузера.

Это не будет дифференцировать устройства, но, как вы объяснили в своем редактировании, вы на самом деле хотите знать размер экрана устройства. Моя идея также не скажет вам точно размер экрана, но даст вам еще более полезную информацию, фактический размер (в дюймах), который у вас есть для рисования вашего GUI.

РЕДАКТИРОВАТЬ: Используйте этот код, чтобы проверить, действительно ли он работает на вашем устройстве. У меня нет iPad, чтобы протестировать его.

var div1= $("
").appendTo(document.body).width("1in").height("1in").css("position", "absolute"); var div2= $("
").appendTo(document.body).width("100%").height("100%").css("position", "absolute"); var width= div2.width() / div1.width() var height= div2.height() / div1.height() alert(Math.sqrt(width*width + height*height));

Должно появиться окно с размером экрана в дюймах. Кажется, он работает на моем ноутбуке, возвращая 15,49, в то время как экран моего ноутбука продается как 15,4 ''. Может кто-нибудь проверить это на iPad и оставить комментарии, пожалуйста? Не забудьте запустить его на весь экран.

РЕДАКТИРОВАТЬ 2: Оказывается, что страница, на которой я ее тестировал, имела несколько противоречивых CSS . Я исправил тестовый код для правильной работы. Вам нужно position: absolute в div, чтобы вы могли использовать высоту в%.

РЕДАКТИРОВАТЬ3: Я провел некоторые исследования, и, кажется, нет никакого способа на самом деле получить размер экрана на любом устройстве. Это не то, что ОС может знать. Когда вы используете модуль реального мира в CSS, это на самом деле просто оценка, основанная на некоторых свойствах вашего экрана. Излишне говорить, что это совсем не точно.

16
задан Jim McKeeth 1 July 2009 в 01:21
поделиться

3 ответа

Наконец, я нашел причину проблемы. Это причина Vista / Win7:

  1. Открыть центр действий
  2. Перейти к настройкам Центра действий
  3. Перейти к настройкам отчетов о проблемах
  4. Выберите «Каждый раз, когда возникает проблема, спрашивайте меня перед поиском решения»

Хотя это скорее ИТ-решение / вопрос, меня мучила эта проблема весь день, и я хотел поделиться решением с другими разработчиками, которые столкнулись с этой проблемой.

23
ответ дан 30 November 2019 в 17:28
поделиться

Вы можете попробовать отладить> присоединить к процессу.

-1
ответ дан 30 November 2019 в 17:28
поделиться

В этом случае ...

http://community.codesmithtools.com/blogs/blake/archive/2009/06/03/tips-amp-tricks-debugging-codesmith -on-microsoft-windows-7.aspx

Вот краткий обзор того, что вам нужно сделать, чтобы включить отладку на компьютере с Microsoft Windows 7:

Обновите параметр JITDebugLaunchSetting в JITDebugLaunchSetting. Этот параметр находится в реестре по адресу [HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft.NETFramework].
Установите значение DbgJITDebugLaunchSetting равным 2. Если вы используете 64-битную операционную систему, вы также должны установить для того же ключа (DbgJITDebugLaunchSetting) в этой папке [HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft.NETFramework] значение 2. Если у вас возникнут проблемы, попробуйте запустить CodeSmith Studio и Visual Studio от имени администратора. Теперь, когда CodeSmith входит в точку останова, вы увидите что-то вроде этого:

1
ответ дан 30 November 2019 в 17:28
поделиться
Другие вопросы по тегам:

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