2012-05-26 33 views
11

Hiển thị một hình ảnh từ một máy chủ từ xa:HTML/JavaScript - Remote img src với tự động http/https tiền tố

<img src="http://remotehost/path/to/a.png" alt="Image A" /> 

Tuy nhiên, nếu trang hiện hành được truy cập thông qua HTTPS, liên kết hình ảnh thông qua HTTP không được mã hóa sẽ mang lại an ninh cảnh báo. Trong khi tôi chỉ có thể chỉ định https: // bất kể giao thức hiện tại, làm như vậy sẽ lãng phí vì tôi thực sự không quan tâm đến việc truyền tải hình ảnh này trừ khi nó là cần thiết (khi khách truy cập đang sử dụng HTTPS).

Có thể chỉ định URL cho thuộc tính src của thẻ img sao cho giao thức trong URL được chọn động dựa trên giao thức được sử dụng để truy cập trang hiện tại không? Để minh họa ý tôi:

<img src="(JavaScript's window.location.protocol)//remotehost/path/to/a.png" alt="Image A" /> 

Nếu chúng ta sử dụng JavaScript thì sao? Chúng tôi có thể cung cấp cho các thẻ img một id để chúng tôi có thể xác định vị trí nó và thiết lập src để bắt đầu với window.location.protocol.

Cũng có thể sử dụng base64 để bỏ qua hoàn toàn vấn đề HTTP/HTTPS, nhưng điều này không lý tưởng cho những gì tôi đang làm.

Các bạn có thể giới thiệu điều gì?

Trả lời

21

Chỉ cần làm:

<img src="//remotehost/path/to/a.png" alt="Image A" /> 
+3

Để xây dựng một chút. Paul Ailen đã viết một [bài viết] tốt (http://paulirish.com/2010/the-protocol-relative-url/) về vấn đề này. – Matijs

+0

ans rất hữu ích. – gdmanandamohon

0

nếu tập tin trên mạng LAN bạn cần phải sử dụng file: // giao thức thêm 5 dấu gạch chéo trước con đường nên tên máy chủ của tôi là athensserver nên f://///athensserver/ (bất cứ điều gì bạn chia sẻ ở đây)

file://///athensserver/athens/0/e1.png" 
Các vấn đề liên quan