Отлично работает на Chrome & Firefox, но имеет серьезные проблемы при попытке загрузки в Safari. Вся предпосылка заключается в том, что мы хотим, чтобы весь процесс совершения покупок проходил через указанный iFrame на вторичном URL, а затем направлялся на первичный URL, как только пользователь достигнет страницы оформления заказа (по соображениям безопасности).
Я использую WooCommerce в качестве нашей корзины для покупок, построенной на основе WordPress. У меня ограниченные знания веб-языков, но я знаю достаточно, чтобы собрать воедино код, который я нахожу в inte rnet, чтобы все работало большую часть времени. Вся информация, которую я нахожу о сторонних проблемах повара ie с Safari, относится к 2012/13 году, и большинство из них, похоже, не имеют никакого значения. На данный момент я написал JS для перенаправления в корзину на основном домене, если обнаружен Safari:
<script>
var is_safari = navigator.userAgent.indexOf("Safari") > -1;
var is_chrome = navigator.userAgent.indexOf('Chrome') > -1;
if ((is_chrome) && (is_safari)) {is_safari = false;}
if (is_safari) {
if (!document.cookie.match(/^(.*;)?\s*woocommerce_cart_hash\s*=\s*[^;]+(.*)?$/)) {
document.cookie = 'fixed=fixed; expires=Tue, 19 Jan 2038 03:14:07 UTC; path=/';
window.location.replace("primarydomain.com");
}
}
</script>
Он сделан из фрагмента, найденного мной на GitHub, который призван решить проблему, предварительно загрузив страницу, чтобы зацепить повара ie, а затем, как только Повар ie перезагружает iFrame, поскольку Safari уже имеет доступ к повару ie. Проблема в том, что даже когда повар ie уже существует, похоже, что Safari отказывается признать, что он там, и все еще загружает пустую / пустую корзину (повар ie называется «woocommerce_cart_ha sh»).
Не знаю, пытался ли я это исправить? Или я смотрю не в том месте? Спасибо всем за помощь, спасибо.