Javascript Snippet не работает в Safari 11 и 12 - PullRequest
0 голосов
/ 19 февраля 2019

Кто-нибудь знает причину, по которой следующий фрагмент javascript работает как в Chrome, так и в Firefox, но не в версиях Safari 11 и 12?

Единственное, что он делает, это принимает значение в параметре url код и вставьте его в URL-адреса нужной мне страницы.

Есть ли какие-либо ограничения в отношении JavaScript в новых версиях Safari?Я не могу найти какую-либо информацию в Интернете ..

<script>
window.addEventListener("DOMContentLoaded", function() {

    if (window.location.href.indexOf('?code') > -1) {
        var uniqueCode = window.location.search.split(/\?|&/g).filter(function(str){
                                                               return str.toLowerCase().indexOf('code') > -1
                                               })[0].replace('code=','');

        var codeLinks = document.querySelectorAll('[href*="/validate/promocode/"'); 

        for (var i = 0; i < codeLinks.length; i++) {
            var currentHref = codeLinks[i].href;
            var newHref = currentHref.replace(/\/validate\/promocode\/.*\/buy\//, "/validate/promocode/" + uniqueCode + "/buy/");
            codeLinks[i].href = newHref;
        }   
    }
}, false);

</script>       

У меня нет Mac, чтобы проверить это, но возможно ли, что Javascript по умолчанию отключен в версиях 11 и 12 на Mac?

1 Ответ

0 голосов
/ 20 февраля 2019

Решено

Проблема заключается в следующей строке:

var codeLinks = document.querySelectorAll('[href*="/validate/promocode/"');

должно быть

var codeLinks = document.querySelectorAll('[href*="/validate/promocode/"]');

Небольшая синтаксическая ошибка другой4 браузера не жалуются.Вывод: Safari намного строже в синтаксических ошибках.

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