2008-09-22 14 views
10

क्या छवि यूआरएल प्राप्त करने के लिए आईएमजी एसआरसी टैग से जावास्क्रिप्ट फ़ंक्शन को कॉल करना संभव है?आईएमजी एसआरसी टैग और जावास्क्रिप्ट

इस तरह

:

<IMG SRC="GetImage()" /> 

<script language="javascript"> 
    function GetImage() {return "imageName/imagePath.jpg"} 
</script> 

यह .NET 2.0 उपयोग कर रहा है।

+0

प्रश्न वास्तव में यह निर्धारित नहीं करता है कि आप क्या हासिल करने की कोशिश कर रहे हैं? – Ian

+0

सहमत - मुझे यह पता लगाने में एक मिनट लगा कि वह क्या प्राप्त कर रहा था ... –

+0

असहमत - स्पष्ट। – DragonLord

उत्तर

20

नहीं। यह संभव नहीं है, कम से कम सभी ब्राउज़रों में नहीं।

<img src='images/test.jpg' onmouseover="alert(this.src);"> 
-1

नहीं। आईएमजी की एसआरसी विशेषता एक घटना नहीं है, इसलिए इनलाइन जेएस कभी भी आग नहीं लगाएगी।

+0

हालांकि, यह एक यूआरआई लेता है और जावास्क्रिप्ट चला सकता है: छद्म-यूआरआई। यह एक्सएसएस छेद का एक कारण है। – Quentin

1

आप इसे छवि @src इनलाइन नहीं कर सकते, लेकिन आप तुरंत अपनी छवि निम्नलिखित एक इनलाइन स्क्रिप्ट ब्लॉक से यह कॉल करने के लिए सक्षम होना चाहिए:

<img src="" id="myImage"/> 
<script type="text/javascript"> 
    document.getElementById("myImage").src = GetImage(); 
</script> 
+0

ओपेरा इनलाइन स्क्रिप्ट टैग का समर्थन नहीं करता है? यह मेरे लिए समाचार है। – levik

+5

यह वास्तव में सच से बहुत दूर है। स्क्रिप्ट टैग को यथासंभव संभवतः आपके पृष्ठ में रखने की अनुशंसा की जाती है, क्योंकि जब तक स्क्रिप्ट निष्पादित नहीं हो जाती है तब तक डोम प्रतिपादन में देरी होती है। आप वास्तव में अपने शरीर के अंत में स्क्रिप्ट टैग रखकर कथित पृष्ठ लोड समय को बढ़ा सकते हैं। –

-1

प्रदान करेगा आप this.src लिए देख रहे हैं `आप उपयोग कर रहे के बाद से: आप इस के बजाय की तरह कुछ कर सकते हैं? .NET, आप runat="server" विशेषता जोड़ सकते हैं और अपने कोडबेंड में src सेट कर सकते हैं।

0

<img src="blank.png" id="image" alt="just nothing"> 
<script type="text/javascript"> 
    document.getElementById('image').src = "yourpicture.png"; 
</script> 

अपने पसंदीदा जावास्क्रिप्ट ढांचे अच्छे तरीके :)

0

आप सर्वर साइड पर यह करने के लिए सक्षम हो सकता है। वैकल्पिक रूप से आप छवि स्रोत को स्वैप करने के लिए एक ऑनलोड ईवेंट संलग्न कर सकते हैं। मुझे लगता है कि सवाल तब बन जाता है, आपको पहली गति में जावास्क्रिप्ट का उपयोग क्यों करना होगा?

1

आप एसआरसी में एएसपीएक्स पेज को कॉल करके छवि को गतिशील रूप से फ़ीड कर सकते हैं।

पूर्व;

<img src="provideImage.aspx?someparameter=x" /> 

पृष्ठ की तरफ, आपको छवि को प्रतिक्रिया में डालने और छवि के लिए सामग्री प्रकार बदलने की आवश्यकता होगी।

केवल "समस्या" है कि आपकी छवियाँ एक तो आप बेहतर है कि प्रदाता पृष्ठ पर कुछ कैश डाल या आप सर्वर विनाश करेंगे अनुक्रमित नहीं किया जाएगा है।

7

यह एक छवि यूआरएल पाने के लिए आईएमजी एसआरसी टैग से एक JavaScript फ़ंक्शन कॉल करने के लिए संभव है?

क्या आपका मतलब निम्न की तरह कुछ करना है?

<img src="javascript:GetImage()" /> 

दुर्भाग्यवश, नहीं - आप ऐसा नहीं कर सकते हैं। हालांकि, अगर आप निम्नलिखित हैक कर सकते हैं:

function getImageUrl(img) { 
    var imageSrc = "imageName/imagePath.jpg"; 
    if(img.src != imageSrc) { // don't get stuck in an endless loop 
     img.src = imageSrc; 
    } 
} 

फिर, निम्न HTML है:

<img src="http://yourdomain.com/images/empty.gif" onload="getImageUrl(this)" /> 

ऑनलोड घटना केवल आग आप एक वास्तविक छवि src विशेषता के लिए निर्धारित किया है - आप अगर उस विशेषता को सेट न करें या इसे एक खाली स्ट्रिंग या कुछ समान पर सेट न करें, आपको कोई प्यार नहीं मिलेगा। इसे एक पिक्सेल पारदर्शी gif या कुछ समान पर सेट करें।

वैसे भी, यह हैक काम करता है, लेकिन आप जो वास्तव में पूरा करने की कोशिश कर रहे हैं उसके आधार पर, यह सबसे अच्छा समाधान नहीं हो सकता है। मुझे नहीं पता कि आप ऐसा क्यों करना चाहते हैं, लेकिन शायद आपके पास एक अच्छा कारण है (कि आप हमारे साथ साझा करना चाहते हैं!)।

0

मुझे पहले ऐसा कुछ करना पड़ा, और आईआईआरसी चाल चल रही है कि आप किसी छवि के स्रोत विशेषता को नहीं बदल सकते जो कि डीओएम पेड़ का हिस्सा है। तो आपकी सबसे अच्छी शर्त छवि के बिना अपने एचटीएमएल कंकाल लिखना है और 1) एक ऑनलोड लोड बनाएं जो document.createElement के साथ एक नया आईएमजी तत्व उत्पन्न करता है, 2) setAttribute(), और 3 के साथ src विशेषता सेट करें) इसे अपने DOM से संलग्न करें पेड़। छवि के

-1

OnLoad इवेंट बार-बार कहा जाता है बार-बार कहा जाता है छवि के इस

0

OnLoad इवेंट की तरह कुछ काम करते हैं आप में हैं, तो यह

10

जैसे कुछ काम करते हैं हैक्स के लिए मूड, यह भी काम करता है।

<img src='blah' onerror="this.src='url to image'"> 
+1

समस्या को हल करने में त्रुटि उत्पन्न करता है, बढ़िया: डी डाउनवॉटेड – F0G

0

इस बारे में कैसे?

var imgsBlocks = new Array('/1.png', '/2.png', '/3.png'); 
function getImageUrl(elemid) { 
var ind = document.getElementById(elemid).selectedIndex; 
document.getElementById("get_img").src=imgsBlocks[ind]; 
} 

यह काम नहीं कर रहा है?

<img src="'+imgsBlocks[2]+'" id="get_img"/> 
+0

यह मानता है कि आप अपने जेएस कोड में एचटीएमएल बना रहे हैं; इस सवाल में कोई संकेत नहीं है कि यह मामला है। –

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