2011-11-18 8 views
5

मेरे पास मेरे फ़्लैश एप्लिकेशन में कुछ बटन हैं जो दो अलग-अलग जावास्क्रिप्ट कार्यों को कॉल करते हैं। वे आईई 9 को छोड़कर सभी ब्राउज़रों में काम करते हैं (मैंने पहले आईईएस की कोशिश नहीं की है)। समारोह कॉल करने के लिए मेरे कोड कुछ इस तरह है:आईई 9 में फ्लैश से जावास्क्रिप्ट में मेरी कॉल क्यों विफल रही है?

ExternalInterface.call(
     "myLovelyFunction", 
     string1, string2); 

और जे एस में कोड इस तरह दिखता है:

function myLovelyFunction(string1, string2) { 
    window.open('https://twitter.com/share?url=http%3A%2F%2Fwww.mysite.com%2Fapage.php&via=atwitteraccount&text=Some%20text%22&related=atwitteraccount', 
    'windowname', 
    'height=290,width=510'); 
} 

IE9 में, समारोह पूरी तरह से कुछ भी नहीं करता है, लेकिन सांत्वना के साथ शिकायत:

SCRIPT438: Object doesn't support property or method 'SetReturnValue' 
index.php, line 1 character 1 

लाइन 1, वर्ण 1 स्पष्ट रूप से विशेष रूप से कुछ भी इंगित नहीं कर रहा है।

मैं इसे संगतता दृश्य पर स्विच करके ठीक काम कर सकता हूं, हालांकि कंसोल त्रुटि दूर नहीं जाती है।

क्या आईई 9 के बारे में कुछ भी है जो इसका कारण बनता है, और सबसे महत्वपूर्ण बात यह है कि मैं इसे कैसे ठीक करूं?

+2

"इस तरह कुछ" के बजाय आपका वास्तविक कोड देखकर बहुत उपयोगी होगा। शायद एक परीक्षण साइट के लिए एक लिंक भी? –

+0

ने जेएस फ़ंक्शन का पूरा शरीर जोड़ा, हालांकि फ़ंक्शन का बॉडी बिल्कुल कोई फर्क नहीं पड़ता। – izb

+0

क्या आपके पास इस पृष्ठ 'Foobar.SetReturnValue()' और आपके पृष्ठ में 'Foobar' की आईडी वाला एक HTML तत्व है? – HoLyVieR

उत्तर

6

मैं भी यह बहुत ही समस्या थी।

<object type="application/x-shockwave-flash" data="/files/banners/64/64_300x250.swf" width="300" height="250"> 
     <param name="movie" value="/files/banners/64/64_300x250.swf"/> 
     <param name="wmode" value="transparent"/> 
    </object> 

मैं सिर्फ एक नियमित रूप से वस्तु टैग (कोई SWFObject और कोई एम्बेड फ़ॉलबैक) के साथ फ्लैश embedding कर रहा हूँ: मैं निम्नलिखित कोड का उपयोग कर रहा था।

ExternalInterface.call("window.open", url, target, features); 

क्या काम नहीं किया:: मेरे फ्लैश फ़ाइल इस तरह ExternalInterface के माध्यम से जे एस समारोह window.open कॉल ऊपर दी गई लिंक का सुझाव इसे बदलने "document.open" करने के लिए है, जो काम नहीं किया। आईई -8 मोड में प्रस्तुत करने के लिए पेज को मजबूर करने का भी प्रयास नहीं किया गया। उदाहरण के लिए:

<meta http-equiv="X-UA-Compatible" content="IE=8" /> 

क्या काम: सीधे शब्दों में वस्तु टैग के लिए एक "नाम" और "आईडी" जोड़ने समस्या हल हो जाती। उदाहरण के लिए:

<object type="application/x-shockwave-flash" data="/files/banners/64/64_300x250.swf" width="300" height="250" name="flash_object" id="flash_object"> 
+0

इस उत्तर ने मुझे इंटरनेट एक्सप्लोरर 11 से निपटने के घंटे बचाए। मैंने 5 मिनट में समस्या हल की, बहुत बहुत धन्यवाद! –

1

बिल्कुल वही समस्या थी, नीचे दिए गए लिंक को हल करने में मदद मिली।

http://msdn.microsoft.com/en-us/library/gg622942%28v=VS.85%29.aspx

+1

इसे मेरे लिए हल किया गया। स्पष्ट रूप से 'बाहरी इंटरफेस.call' आईडी या नाम से इसके एम्बेडिंग तत्व को संदर्भित कर सकता है, और यदि यह एकाधिक तत्व पाता है तो असफल हो सकता है। – commonpike

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