#javascript #android
#javascript #Android
Вопрос:
Я пытаюсь перенаправить на другую страницу, используя javascript. Это хорошо работает с Firefox, но не с Android. Вот пример кода:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta name="viewport" content="width=device-width" />
<meta content="text/html; charset=UTF-8" http-equiv="content-type" />
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript">
document.write("1: " window.location.href "<br />");
window.location = "http://www.google.com";
document.write("2: " window.location.href "<br />");
window.location.href = "http://www.google.com";
document.write("3: " window.location.href "<br />");
window.location.assign("http://www.google.com");
document.write("4: " window.location.href "<br />");
</script>
<title>Test</title>
</head>
<body>
</body>
</html>
Цель состоит в том, чтобы перенаправить на google.com и я пробую 3 разных подхода. Firefox перенаправляет немедленно. Android печатает первое местоположение, а затем останавливается. Если я закомментирую
window.location = "http://www.google.com";
затем он печатает первые два и останавливается. И так далее. По какой-то причине я могу читать window.местоположение просто отличное, но когда я пытаюсь его изменить, скрипт зависает. Любая помощь была бы отличной. Использование Android 2.2.
Комментарии:
1. Вы пробовали использовать «console.log()» вместо «document.write()»? Просто случайная мысль.
2. Вот тестовая страница, которая отлично работает для меня с моего телефона Android.
3. @Pointy Спасибо! Я предполагаю, что это означает, что что-то не так в моей среде, а не в коде. Честно говоря, я тестирую его через эмулятор Android (из-за отсутствия реального телефона), и ваша страница просто пуста, когда я использую Android 2.3, но работает, как ожидалось, с 2.1. Можете ли вы сообщить мне, какую версию вы используете? Если это проблема с эмулятором, тогда все в порядке. Но если виновата версия Android, то это проблема.
4. Я думаю , что мой телефон 2.2 (это довольно новый Moto «Atrix») — посмотрим, смогу ли я понять, как убедиться 🙂 редактировать да, это Android 2.2.1
Ответ №1:
Попробуйте window.location.href
:
window.location.href = "http://www.google.com";
Комментарии:
1. Спасибо, но я попробовал это, и это также включено в код (местоположение, location. href и location.assign()). Можете ли вы подтвердить, что это работает у вас? Есть ли что-то еще, чего мне не хватает?
2. Попробуйте сначала… вы перезаписываете
location
объект как простую строку, поэтому он теряет своеhref
свойство.3. он работает без . href просто отлично; объект «location» не является собственным объектом JavaScript, и присвоение «location» выполняется не так, как вы предлагаете.
4. @Pointy спасибо за разъяснение. Я ожидал, что это будет работать как другие объекты js.