Невозможно добавить UITextField в UIAlertView на iOS7… работает в iOS 6

Просто используйте два раскола:

function get(n) {
    var half = location.search.split(n + '=')[1];
    return half !== undefined ? decodeURIComponent(half.split('&')[0]) : null;
}

Я читал все предыдущие и более полные ответы. Но я думаю, что это самый простой и быстрый метод. Вы можете проверить этот тест jsPerf

. Чтобы решить проблему в комментарии Rup, добавьте условное разделение, изменив первую строку на две ниже. Но абсолютная точность означает, что он теперь медленнее, чем regexp (см. jsPerf ).

function get(n) {
    var half = location.search.split('&' + n + '=')[1];
    if (!half) half = location.search.split('?' + n + '=')[1];
    return half !== undefined ? decodeURIComponent(half.split('&')[0]) : null;
}

Итак, если вы знаете, что не столкнетесь с контр-картой Рупа, это победит. В противном случае regexp.

Или , если у вас есть контроль над запросом и может гарантировать, что значение, которое вы пытаетесь получить, никогда не будет содержать URL-кодированных символов (имеющих эти в значении будет плохой идеей) - вы можете использовать следующую немного упрощенную и читаемую версию 1-го варианта:

    function getQueryStringValueByName(name) {
        var queryStringFromStartOfValue = location.search.split(name + '=')[1];
         return queryStringFromStartOfValue !== undefined ? queryStringFromStartOfValue.split('&')[0] : null;
blockquote>

64
задан Gabriel.Massana 10 July 2014 в 16:04
поделиться