среда, 29 октября 2014 г.

Решение проблемы, если при скачивании файла Internet Explorer не передает заголовок Referer

Внимание!!! Решение не подойдет из-за того, что браузер блокирует программный клик по гиперссылкам.

Стандартное решение.

setTimeout(function () {
    var href = self.$element.attr("href");
    var target = self.$element.attr("target");
    if (href && href.indexOf("#") !== 0) {
        if (target == "_blank") {
            window.open(href, target);
        } else {
            var a = document.createElement("a");

            if (!a.click) {
                window.location = href;
                return;
            }

            a.setAttribute("href", url);
            a.style.display = "none";
            document.body.appendChild(a);
            a.click();
        }
    }
}, 100);

Решение для разных браузеров.

// use browser sniffing to determine if IE or Opera (ugly, but required)
var isOpera, isIE = false;
if (typeof(window.opera) != 'undefined') {isOpera = true;}
if (!isOpera && navigator.userAgent.indexOf('Internet Explorer')) {isIE = true;}

// define for all browsers
function goto(url){
  location.href = url;
}

// re-define for IE
if(isIE){
  function goto(url){
    var referLink = document.createElement('a');
    referLink.href = url;
    document.body.appendChild(referLink);
    referLink.click();
  }
}

Комментариев нет:

Отправить комментарий