За последние 24 часа нас посетили 23725 программистов и 1730 роботов. Сейчас ищут 1412 программистов ...

urlencode + window.open = проблема

Тема в разделе "Вопросы от блондинок", создана пользователем pluto, 20 окт 2009.

  1. pluto

    pluto Активный пользователь

    С нами с:
    9 дек 2007
    Сообщения:
    28
    Симпатии:
    0
    Ошбка в кодировке помогите разобратся

    В window.open ссылку кодирую urlencode и ввыожу так <a href="javascript: window.open(...">открыть окно</a>

    Ссылка выводитя нормально, если скопировать ссылку и вставить в браузер всё загруится нормально. Но вот если щёлкнть по ссылке, русский текст в ссылке будет коракулями. Выходит примерно вот это

    http://yandex.ru/yandsearch?text=Iiaue+ ... par4=%2Fs1

    Такое ощущение что происходит двойное коирование.
     
  2. SDR

    SDR Активный пользователь

    С нами с:
    22 сен 2009
    Сообщения:
    244
    Симпатии:
    0
    помоему для жабаскрипта ничего кодировать вообще не надо :)
     
  3. pluto

    pluto Активный пользователь

    С нами с:
    9 дек 2007
    Сообщения:
    28
    Симпатии:
    0
    Если не кодировать окна открываются нормально. Но в браузере ссылка может выглядеть таким образом

    /file.php?name=/files/sounds/новый файл.txt

    хм... разве это правильно?
     
  4. SDR

    SDR Активный пользователь

    С нами с:
    22 сен 2009
    Сообщения:
    244
    Симпатии:
    0
    задайте вопрос разработчикам браузеров ))
     
  5. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    С UTF да.
     
  6. pluto

    pluto Активный пользователь

    С нами с:
    9 дек 2007
    Сообщения:
    28
    Симпатии:
    0
    Браузер автоматически декодирует сущности в яваскрпте, если он помещён в ссылку, т.е. смысла писать <a href="javascript: window.open(rawurlencode..." нет, причём все браузеры это делают по разному, поэтому как вариант можно сделать так

    <a href="#fileopen" onclick="window.open(rawurlencode" или так <a href="javascript: void(0)" onclick="window.open(rawurlencode"