Почему Chrome и Firefox обрабатывают ссылки Javascript по-разному? - PullRequest
0 голосов
/ 27 января 2012

У меня есть веб-сайт, который отлично работает в FireFox 9.0.1.

В Chrome 16 он терпит неудачу катастрофически.Слишком много ошибок, чтобы пройти их все.

Однако, чтобы выбрать одну проблему для начала (и надеюсь, что это будет подсказка, которая поможет осветить основные проблемы), у меня есть кнопки, которые приводятся в действие Javascript дляпросто переведите кого-нибудь на новую страницу.

Код для этих кнопок прост:

var siteURL = "http://mywebsite.com/";
function goHome()
{
    window.location = siteURL + "index.html";
}

В FireFox, если я нажимаю кнопку, которая выполняет этот код, я получаюпринято к index.html.Легко peasy.

В Chrome, если я нажимаю эту кнопку, я получаю страницу с ошибкой 404, которая говорит:

Запрошенный URL /undefinedindex.html не был найден на этом сервере.

Почему эти браузеры ведут себя по-разному?

Как заставить Chrome играть вместе?


В соответствии с просьбой в комментариях я поставил alert(siteURL); в функции.

Выходы Firefox:

http://mywebsite.com/

Хромированные выходы

undefined

Ответы [ 3 ]

1 голос
/ 27 января 2012

Это работает в Chrome 16:

<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
window.siteURL = "http://mywebsite.com/";
function goHome() {
    console.log('moo?');
    window.location.href = window.siteURL + "index.html";
}
</script>

</head>
<body>

    <a href="#" onclick="goHome(); return false;">go home</a>

</body>

</html>
1 голос
/ 27 января 2012

вы не должны использовать window.location. и вместо этого присваивать URL-адрес window.location.href

Следовательно, он должен был быть

function goHome()
{
    window.location.href = siteURL + "index.html";
}

И также ... вы получаете это 'неопределенное'значение, потому что вы, вероятно, не присваивали какое-либо значение siteURL или забыли объявить его.убедитесь, что он действительно указывает на ваш текущий корневой URL (если вы хотите, чтобы он был)

0 голосов
/ 27 января 2012

Если бы все браузеры вели себя одинаково, я был бы без работы.

Невозможно сказать, что именно идет не так, не видя полного кода.

Судя по аббатству фрагмента, должна быть какая-то другая функция (в той же области, что и goHome), которая присваивает undefined siteURL и вызывается до goHome

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...