javascript
  • internet-explorer
  • 2013-08-16 4 views 3 likes 
    3

    У меня проблема с window.location.href.window.location.href не работает на IE

    Я пытаюсь перенаправить на страницу со следующим кодом:

    window.location.href = "juego.html"+'?modoJuego='+modoJuego+"&etapa="+etapa+"&rango="+rango; 
    

    Он отлично работает на Firefox и Chrome, однако в IE10 браузер зависает, и я должен перезапустить его. Иногда он перенаправляется на нужную страницу, но параметры не проходят. Я искал решение, например, это одно:

    Window.Location Not Working In IE?

    Но предложенное решение не работает для меня.

    Кто-нибудь знает, как с этим бороться?

    +1

    Просто используйте 'window.location'. – user1477388

    +0

    http://stackoverflow.com/questions/10201809/ie-incompatability-with-window-location-href? – twinlakes

    +0

    Во-первых, не смешивайте '' 'и' ''. Для двоих нет необходимости добавлять строки, жестко закодированные ('juego.html" + '? ModoJuego'). 'window.location.href =" juego.html? modoJuego = "+ modoJuego +" & etapa = "+ etapa +" & rango = "+ rango;' –

    ответ

    4

    Проблема, скорее всего, из-за значениями переменных. Если они содержат специальные или недопустимые символы, их необходимо передать через encodeURIComponent перед назначением на window.location.href.

    +0

    Спасибо André, просто небольшое наблюдение: encodeURIComponent не работал со мной, однако вы были правы в отношении специальных символов, у меня было несколько пробелов на переменной, я удалял их и теперь работал нормально. – Vito

    1

    Используйте encodeURIComponent(), чтобы избежать ваш URL:

    window.location.href = encodeURIComponent("juego.html?modoJuego=" + modoJuego + "&etapa=" + etapa + "&rango=" + rango); 
    

    прекрасно работает на Firefox 23.0, Chrome 28.0.1500.95 и Internet Explorer 10.

    +0

    Спасибо, но это не сработало. Проблема заключалась в некоторых пробелах по параметрам, я удалил их и теперь отлично работает. – Vito

    +0

    Несомненно, в этом была проблема, решение заключается в использовании 'encodeURIComponent', чтобы избежать этих незаконных символов. Исключить их вообще не удастся. – losnir

    +0

    Это не сработало. Я попытался, и это не решило проблему. Решена проблема заключается в том, чтобы вручную удалить символы (пробелы по параметрам). – Vito

    2

    По какой-то причине IE только как полный URL.

    У меня такая же проблема тэ и исправить ее, добавив полный URL, как это:

    var baseURL = 'http://www.your_url.com/'; 
    
    window.location.href = baseURL + "juego.html"+'?modoJuego='+modoJuego+"&etapa="+etapa+"&rango="+rango; 
    
    0

    Попробуйте window.location.replace(...) вместо этого.

    См этот вопрос для информации:

    How to redirect to another webpage in JavaScript/jQuery?

    Смежные вопросы