2008-11-04 9 views
15

क्या मानक टूटी हुई छवि को सीएसएस के माध्यम से बदलना या किसी अन्य तकनीक का उपयोग करना संभव है? मेरी सभी छवियां एक ही आकार के हैं और मेरी पारदर्शिता है।सीएसएस के माध्यम से अनुपलब्ध छवियों को बदलें?

मैं सभी छवियों को एक div की पृष्ठभूमि के साथ रैप करने के लिए कोशिश की है:

<div class="no_broken"> 
    <img src="http://www.web.com/found.gif"/> 
</div> 

<div class="no_broken"> 
    <img src="http://www.web.com/notfound.gif"/> 
</div> 

सीएसएस:

div.no_broken { 
    background-image: url(standard.gif); 
} 

div.no_broken, div.no_broken img { 
    width: 32px; 
    height: 32px; 
    display: block; 
} 

लेकिन यह एक दूसरे के ऊपर पर दो छवियों को प्रदर्शित करेगा अगर आईएमजी पारदर्शी है।

उत्तर

33

यह सीएसएस के बिना काम करता है:

<img src="some.jpg" onerror="this.src='alternative.jpg';"> 

यह भी काम करने के लिए जब जावास्क्रिप्ट अक्षम किया गया है लगता है।

+1

यह विषम है। मुझे जावास्क्रिप्ट की तरह दिखता है:/ओह ठीक है। ब्राउजर – Gene

+8

में पाया गया यह पहला और न ही आखिरी अजीब फीचर नहीं है, यह जावास्क्रिप्ट अक्षम होने पर काम नहीं करता है। और अगर वैकल्पिक.जेपीजी गलती से गायब हो तो यह एक अनंत लूप का कारण बन जाएगा। – asiby

+1

इसे पूरी तरह से सीएसएस का उपयोग करने के लिए, आप इस लिंक को https: //developer.mozilla देख सकते हैं।संगठन/एन-यूएस/डॉक्स/सीएसएस /: - moz-broken, फिर उन अन्य ब्राउज़रों के बराबर पाएं जिन्हें आप लक्षित कर रहे हैं। – asiby

0

जहाँ तक मुझे पता है, कोई सीएसएस संपत्ति नहीं है जो टूटी हुई छवियों के प्रदर्शन को नियंत्रित करती है। शायद ब्राउज़र-विशिष्ट गुण हैं? पृष्ठ पर छवियों को फिर से चलाने के लिए आपको जावास्क्रिप्ट का सहारा लेना पड़ सकता है, और यदि वे टूटे हुए हैं तो उनके स्रोत को प्रतिस्थापित कर सकते हैं।

1

मैं नहीं जानता कि आप किस तकनीक का उपयोग कर रहे हैं लेकिन एएसपीनेट में नियंत्रण नियंत्रक कहा जाता है।

मैंने छवियों को पूर्ण नहीं होने पर छवियों को प्रतिस्थापित करने के लिए इसका उपयोग किया है।

मुझे नहीं पता कि यह आपकी स्थिति से संबंधित है या नहीं, निश्चित रूप से काम नहीं करेगा जब पथ है लेकिन पथ पर छवि नहीं है।

0

यह कोड जावास्क्रिप्ट है और केवल जेएस सक्षम होने पर ही काम करेगा। अजीब बात यह भी काम करती है अगर आईई में फ़ाइल को स्थानीय मशीन से एक्सेस किया जाता है (फ़ाइल: /// के साथ)। जब पृष्ठ http के साथ पहुंचाया जाता है तो यह जेएस के बिना काम नहीं करेगा।

4

यदि आप मिश्रण में कुछ जावास्क्रिप्ट जोड़ना चाहते हैं, तो यह छवि त्रुटियों का पता लगाने के लिए jQuery के साथ अच्छी तरह से काम करना चाहिए और टूटी हुई छवियों में कुछ प्रकार की त्रुटि स्थिति सीएसएस क्लास जोड़ना चाहिए।

$(document).ready(function() { 
    $('.no_broken img').error(function() { 
     $(this).addClass('broken'); 
    }); 
}); 

और फिर अपने सीएसएस में आप हो सकता था कुछ

तरह
div.no_broken, div.no_broken img { 
    width: 32px; 
    height: 32px; 
    display: block; 
} 

div.no_broken img.broken { 
    background-image: url(standard.gif); 
    content:""; 
} 
+0

मुझे यह पसंद है लेकिन टूटी हुई छवि की सामग्री सेट करना:" "या' डिस्प्ले: कोई भी अन्य कारण नहीं है मेरे लिए लेआउट मुद्दे। 'अस्पष्टता: 0' का उपयोग करके उस समस्या को हल किया गया। – cmorris

2

सोचा मैं एक जवाब में kmoser से टिप्पणी पैकेज चाहते हैं। आतंक हैंडलर को साफ़ करना एक अच्छा विचार है क्योंकि लूप संभव है।

जावास्क्रिप्ट

function epic(c) { 
    c.onerror=''; 
    c.src='alternative.jpg'; 
}; 

एचटीएमएल

<img src='some.jpg' onerror='epic(this)'> 

हम twiends पर अब हमारे सभी छवि टैग में इस महाकाव्य समारोह छोड़ें, जैसा कि हम सामाजिक प्रोफ़ाइल छवियों है कि सभी में कुछ बिंदु पर समाप्त हो का भार में खींच भविष्य।

संबंधित मुद्दे