2016-07-03 2 views
1

У меня есть некоторые Google-скрипты на моем сайте, и, к сожалению, один из них загружает некоторые дополнительные скрипты и изображения поверх http вместо https (мой сайт доставляется по https) , Мне удалось получить скрипты, загруженные через HTTPS с помощью следующего кода (from this question):Javascript - запрос изображения блока и заменить запрошенный img-url другим

Object.defineProperty(HTMLScriptElement.prototype, 'src', { 
    get: function(url) { 
     return this.getAttribute('src') 
    }, 
    set: function(url) { 
     //console.log(url); 
     var prefix = "http://"; 

     if (url.startsWith(prefix)) 
      url = "https://" + url.substr(prefix.length); 

     //console.log('being set: ' + url); 
     this.setAttribute('src', url); 
    } 
}); 

Но есть несколько файлов изображений, которые по-прежнему загружены через HTTP. Эти файлы недоступны через https.

Моя мысль заключалась в том, чтобы загрузить эти изображения и разместить их на моем сервере и загрузить их оттуда. Есть ли способ с JavaScript для перезаписи пути изображения? Конечно, я мог бы использовать jQuery, но до этого я должен заблокировать запрос изображения до его увольнения. В противном случае у меня проблема с смешанным контентом на моей странице.

Так давайте вместе: - страница загружается и через некоторое время определенное пользователем действие (в моем случае отправки формы) происходит - на основе этого действия дополнительный скрипт загружается, который помещает виртуальную клавиатуру моя страница - эта клавиатура имеют некоторые изображения, которые не могут быть загружены через протокол HTTPS, поэтому я хочу, чтобы блокировать эти запросы - то, я хочу, чтобы заменить заблокированные изображения-URLs с моими пользовательскими образами-адресами

возможно ли это?

Спасибо!

+0

Возможный дубликат [Предварительная загрузка изображений с помощью jQuery] (http://stackoverflow.com/questions/476679/preloading-images-with-jquery) –

+0

Точно так же, как вы заменяете http-> https, но с помощью поиска/для каждого URL-адреса, загружаемого из разных источников. –

+0

@ArtyomNeustroev: Можете ли вы привести пример, пожалуйста? Я пробовал это с помощью HTMLImageElement, но не имел успеха. – Brotzka

ответ

0

Вы можете попробовать отредактировать HTTP-прокси на основе JavaScript, который перехватывает предварительные предпрограммы HTTP-запросов. Есть популярная издевательская библиотека JavaScript, которая делает это под названием pretender, https://github.com/pretenderjs/pretender/blob/master/pretender.js#L266 Я думаю, вы можете использовать код претендента, чтобы помочь вам понять, как перехватить предварительные предпрограммы HTTP-запросов и перенаправить их на прокси-сервер по вашему выбору, который поддерживает https.

Смежные вопросы