2009-09-17 30 views
5

Tôi đang hiển thị hình đại diện của các trang web trong danh sách, là <img /> yếu tố.

một số trang web phục vụ họ như:
IE không hiển thị biểu tượng .ico trong HTML nếu không được phân phát dưới dạng "hình ảnh/biểu tượng x"

<link rel="icon" type="image/x-icon" href="favicon.ico" /> 

và một số phục vụ họ như:

<link rel="shortcut icon" href="favicon.ico" /> 

IE không hiển thị favicon hình ảnh của những người không có type = "image/x-icon".
Tôi không thể kiểm soát cách các trang web phục vụ yêu thích của họ, vì vậy tôi có thể làm gì từ phía tôi?

+3

Chính xác bạn muốn làm gì? – voyager

+0

Bạn có muốn nó hoạt động giống như trên trang Giới thiệu không? http://stackoverflow.com/about (xuống dưới cùng cho người kiểm duyệt) – random

+0

có, giống như chính xác – vsync

Trả lời

2

Tôi nghĩ điều tốt nhất cần làm là chuyển đổi chúng sang định dạng khác. Nếu bạn đang hiển thị các biểu tượng theo cách thủ công thì bạn có thể tải xuống từng biểu tượng, chuyển đổi nó bằng một chương trình hình ảnh và tải nó lên trang web của bạn.

Nếu bạn đang thực hiện tự động, bạn sẽ cần phải xem xét bất kỳ công cụ xử lý hình ảnh nào bạn có được ở phía máy chủ. Nếu bạn đang sử dụng PHP, đó sẽ là thư viện GD hoặc ImageMagick. Chỉ cần chuyển đổi sang PNG chẳng hạn và lưu vào bộ nhớ cache trên trang web của bạn.

Nếu IE không hiển thị tệp .ico nội tuyến với một trang, thì có khả năng bạn sẽ không thể hiển thị tệp đó mà không thực hiện một số loại xử lý. Ở cấp độ đơn giản nhất, bạn chỉ có thể đọc các hình ảnh bên ngoài và phục vụ chúng như là loại mime phù hợp, mà không cần chuyển đổi chúng.

+0

Tôi đồng ý - tốt hơn nhiều so với cố gắng bằng cách nào đó để làm cho trình duyệt (đặc biệt là những người không phải là IE) hiển thị ICO trong IMGs –

+0

Những người không phải IE hiển thị chúng chính xác luôn. Tôi đang trên .NET: (tất cả chúng đều được nạp tự động, hàng ngàn người trong số họ có thể. Tôi biết GD cho PHP, và nghĩ về nó, nhưng nó quá nhiều công việc cho một điều đơn giản như vậy. Cảm ơn sự giúp đỡ của các bạn! – vsync

+0

I Chắc chắn .net có một số chức năng xử lý hình ảnh, nhưng bạn có thể tự mình phân phát các tệp với một loại mime khác mà không cần chuyển đổi. – DisgruntledGoat

2

Đặt này trong cấu hình apache của bạn hoặc .htaccess file:

AddType image/x-icon .ico 
0

Thật không may, dường như không giải quyết vấn đề tôi có. IE không hiển thị tất cả favicon.ico trong danh sách liên kết của tôi (http://www.jerbils.info/wxlinks.php) trong khi tất cả các trình duyệt khác thực hiện (nghĩa là chúng hiển thị tất cả các favicon.ico tồn tại). Thật thú vị, nếu tôi tự hiển thị favicon.ico của một tên miền trong IE, các trình duyệt không hiển thị trong IE hiển thị trong tất cả các trình duyệt khác xuất hiện dưới dạng nội dung văn bản trái ngược với hình ảnh. Ý nghĩa là có một cái gì đó về các tập tin mà IE không thích và do đó nó được tạo ra một điều kiện onerror đó là gây ra các biểu tượng mặc định sẽ được hiển thị.

Các vấn đề liên quan