Как отметил @FelixKling, наиболее вероятным сценарием является то, что узлы, которые вы ищете, еще не существуют.
Однако современные методы разработки часто могут манипулировать элементами документа за пределами дерева документов либо с DocumentFragments, либо просто отсоединением / повторным подключением текущих элементов напрямую. Такие методы могут использоваться как часть шаблонов JavaScript или для предотвращения чрезмерных операций перерисовки / переплавки, в то время как элементы, о которых идет речь, сильно изменяются.
Аналогично, новая функциональность «Теневой DOM» развертывается в современных браузерах позволяет элементам быть частью документа, но не обрабатываться запросом document.getElementById и всеми его методами sibling (querySelector и т. д.). Это делается для инкапсуляции функциональных возможностей и, в частности, скрыть его.
Опять же, скорее всего, элемент, который вы ищете, просто (пока) в документе, и вы должны сделать, как предлагает Феликс , Тем не менее, вы также должны знать, что это все чаще является не единственной причиной того, что элемент может быть необоснованным (временно или постоянно).
Более новые телефоны идут с WAP2, который использует HTML Мобильный Профиль (XHTML MP), который весьма схож с нормальным HTML. Более старые телефоны используют Язык разметки для беспроводной связи (WML).
В зависимости от Вашей аудитории я считал бы создание мобильного телефона дружественной версией сайта с помощью XHTML MP и отбросил бы WML полностью. По мобильному телефону, дружественному, я имею в виду легкую графику, мало JavaScript и простой навигации.
Для проверки возможностей различных ручных телефонов бросьте взгляд на WURFL.
Кроме того, Вы могли бы хотеть смотреть на Лучшие практики Мобильного Интернета от w3c.
Я настоятельно рекомендовал бы, чтобы Вы проверили книжный Дизайн Мобильного Интернета Cameron Molls. Не так техническое практическое руководство для создания мобильных оптимизированных сайтов, но заставляет Вас думать о доступных различных вариантах и суммирует каждого за и против. Определенно заставит Вас думать, о каком подходе Вы проявляете и является ли это правильным. Я думаю, что это также имеет некоторые указатели на ресурсы, что справка обнаруживает запросы мобильного устройства на Ваш сайт, там существуют различные варианты.
Вот две вещи, которые можно сделать для улучшения поддержки iPhone, не делая большой работы:
Составьте прокрутку страницы для сокрытия панели URL:
<script type="application/x-javascript">
if (navigator.userAgent.indexOf('iPhone') != -1) {
addEventListener("load", function() {
setTimeout(hideURLbar, 0);
}, false);
}
function hideURLbar() {
window.scrollTo(0, 1);
}
</script>
И набор, масштабирующийся для страницы width (лучше всего, чтобы сделать некоторое тестирование и играть с этим, также ищите другие примеры, которые могут использовать user-scalable=true
):
<meta name="viewport" content="width=320; user-scalable=false" />
Я думаю основное различие для 2.5G, телефоны и новые телефоны 3G - то, что, в то время как 2.5G телефоны использовали свои собственные браузеры, браузеры по телефонам 3G стали намного более подобными/точными в своих возможностях рендеринга.
С другой стороны, можно использовать CSS для рендеринга того же HTML или в формате с большим экраном или в маленьком мобильно оптимизированном, таким образом, я предполагаю то, что произошло, то, что "простой HTML" подход просто, казалось, был наименее трудным путем для взятия. Кроме того, разметки без таблицы позволяют веб-сайтам масштабироваться лучше, помогая представить сайт и в больших и в маленьких форматах экрана.
Таким образом, вопросом о конце будет вопрос целевого рынка. Вы нацелены на технически подкованную аудиторию, которая будет склонна иметь полностью допустимые телефоны 3G? Вы нацелены на людей, которые могли бы иметь 2.5G самое большее?
Если Вы хотите потратить очень небольшую сумму денег, можно найти используемую копию моей книги "Palm OS Web Application Developer's Guide" на Amazon за менее чем 1$. В то время как определенные подсказки о старых устройствах Palm VII больше не применяются, существует несколько разделов по созданию мобильных веб-сайтов, которые могли бы все еще применяться. Мой основной совет - это: сделайте страницы маленькими с релевантной информацией сначала, затем навигационные ссылки; продвиньте универсальный довольный / шаблон, довольный к другим страницам; попытайтесь оптимизировать для сокращения количества времени, которое пользователь проводит на единственной странице; и постарайтесь не загружать много объектов (изображения, файлы JavaScript), чтобы страница уменьшила задержку.
Мой опыт состоит в том, что это действительно зависит от того, что Вы пытаетесь сделать и кто/где пользователи.
В то время как WAP получил много негативных отзывов в прессе, это - сила, то, где у Вас есть низкие соединения высокой задержки пропускной способности. Содержание WML оптимизировано шлюзом поставщика услуг для большого сокращения объема данных, переданного по воздуху. Если у Вас есть iPhone и т.п., в областях с твердым 3G покрытием можно позволить себе пойти для более богатого содержания, но если Вы хотите, чтобы приложение все еще работало хорошо в больше из пути области, WAP имеет большое преимущество.
Одна вещь не упустить с WAP состоит в том, что качество поддержки WAP в гарнитурах варьируется много (угадайте, что Вы также сказали бы то же для веб-браузеров смартфона). Большинство из них отображает страницы хорошо, но обработка формы действительно ужасна в некоторых браузерах.
Если Вы варьируетесь на основе содержимого на агенте пользователя, необходимо также обеспечить явный способ получить доступ к определенному типу содержания (например, разделить uri) - автоматизированный выбор является не всегда правильным, и Вы хотите, чтобы клиент смог переопределить его.
Если Вы идете с выездом разработки WAP WinWAP - браузер WAP на базе Windows.