2010-10-01 9 views
13

हमारे (काफी बड़े और पुराने) एएसपी.NET एप्लिकेशन में हम फ्रेम, आईफ्रेम और मोडल डायलॉग में लोड किए गए बहुत से पृष्ठों का उपयोग करते हैं (window.showModalDialog का उपयोग करके)। हम काफी ऊपर की त्रुटि को देखना शुरू कर रहे हैं, और मुझे इसके लिए कहीं भी एक तर्कसंगत स्पष्टीकरण नहीं मिल रहा है।जेएस: "कैली (सर्वर [सर्वर अनुप्रयोग नहीं]) उपलब्ध नहीं है और गायब हो गया है।" window.opener

  1. पॉपअप अवरोधक। नहीं। हम उन्हें नहीं चला रहे हैं। यहां तक ​​कि अंतर्निर्मित अवरोधक भी नहीं।

  2. विश्वसनीय क्षेत्र। नहीं। एप्लिकेशन अभी स्थानीयहोस्ट पर चलता है, और यह विश्वसनीय साइट सूची में है।

  3. भयानक लौकिक किरणें। संभव है, लेकिन संभव नहीं है। यह बहुत संगत तरीका है।

मैं किया अंततः स्वचालन त्रुटि संदेश जानकारी पुन: प्राप्त के बारे में some dusty tome में माइक्रोसॉफ्ट के साइट पर दफन त्रुटि संदेश पाते हैं। "किसी कार्यपुस्तिका वस्तु संदर्भित इस उदाहरण में, माइक्रोसॉफ्ट एक्सेल सर्वर अनुप्रयोग है एक बार यह नष्ट हो जाता है (या बंद) त्रुटि उत्पन्न।।"

है: यह में, वे एक्सेल के बारे में बात कर रहे थे, और उन्होंने कहा कि संभवतः करीब के रूप में मैं कभी भी एक वास्तविक, ठोस स्पष्टीकरण के बिना, त्रुटि के कारण के लिए एक स्पष्टीकरण के लिए आया है। किसी ने इसका संदर्भ देने के बाद कुछ उपयोग करने का प्रयास किया था। विचित्र रूप से, आप अभी भी स्क्रीन पर विंडो देख सकते हैं। उत्सुकता से, हालांकि, यह this के स्वीकार्य उत्तर के लिए संदिग्ध रूप से smacks।

तो यहां क्या होता है।

  • पृष्ठ ए मुख्य पृष्ठ है।
  • पेजए एक फ्रेम में पेजबी प्रदर्शित करता है। पेजबी एक टूलबार है।
  • पेजए किसी अन्य फ्रेम में पेजसी प्रदर्शित करता है। वह सामग्री है।
  • पेजसी एक गैर-मॉडल संवाद में पेजडी प्रदर्शित करता है।
  • पेज डी, मेरे लिए अज्ञात कारणों से, पेजबी में नियंत्रण को संशोधित करना चाहता है। यह ऐसा करने के लिए window.opener का उपयोग करने की कोशिश कर रहा है, और बहुत असफल रहा है।

अगर कोई मुझे यह बता सकता है कि यह मामला क्यों है (कोड एफएफ में काम करता है), तो मैं इसकी सराहना करता हूं।

+0

आईई का कौन सा संस्करण, और कौन सा ओएस? यदि यह आईई 7 है, तो समस्या संभावित मोड की संभावना है। यदि यह आईई 8 है, तो यह संभवतः एलसीआईई से संबंधित है। यदि आप IE को व्यवस्थापक के रूप में चलाना शुरू करते हैं तो क्या आप समस्या को पुन: उत्पन्न कर सकते हैं? आईआईएस 7 के तहत होस्ट किए गए ऐप के साथ – EricLaw

+0

आईई 8। मैं IE को व्यवस्थापक के रूप में चलाने का प्रयास कर सकता हूं, लेकिन हम अभी भी VS2008 SP1 का उपयोग कर रहे हैं, और Win7 के तहत डिबगिंग अनुभव बल्कि ... winky है। –

+0

हाय माइक, क्या हो रहा है में कोई अंतर्दृष्टि ... मुझे एक ही समस्या का अनुभव है – krul

उत्तर

5

मुझे पहले इस प्रश्न को अपडेट करना चाहिए था, और मैं देरी के लिए क्षमा चाहता हूं। मैंने इसे पोस्ट करने के बाद से कुछ सीखा है, और यहां मैंने जो सीखा है।

खिड़की के साथ खोले गए खिड़कियों के लिए। ShowModalDialog, विंडो.ऑनर विधि खुली खिड़की के संदर्भ के बजाय शून्य वापस आती है। उद्घाटन विंडो का संदर्भ प्राप्त करने के लिए, आपको इसे एक संवाद तर्क के रूप में पास करना होगा।

इस बिंदु पर यह मेरे लिए अस्पष्ट है कि यह इरादा व्यवहार है या नहीं; यह स्पष्ट रूप से अनियंत्रित व्यवहार है। इसके अलावा, एमएसडीएन के मुताबिक, window.opener केवल फ्रेम और आईफ्रेम में लोड पृष्ठों के लिए मान्य है।

2

मेरे पास निम्नलिखित परिदृश्य में एक ही त्रुटि संदेश था: विंडो एक पॉप अप विंड बी, उपयोगकर्ता खोज कुछ और हवा बी कॉल हवा कुछ पैरामीटर गुजर रहा है। पवन पर बुलाया जाने वाला तरीका यह मानने के बाद पॉपअप पवन बी को बंद करने का मानना ​​है। मैं ऑब्जेक्ट के रूप में पैरामीटर पास कर रहा था: पी = {ए: 1, बी: "सी"} प्रत्येक पैरामीटर को अलग करने के लिए कोड को फिर से लिखने के बाद अलग-अलग त्रुटि गायब हो गई। कॉलिंग विधि (1, "सी");

आशा है कि किसी को मदद करता है ...

+0

वाह। धन्यवाद धन्यवाद धन्यवाद। मैं आपका जवाब पढ़ने से पहले काफी स्टंप था। – morgancodes

11

हालांकि मेरा उत्तर सीधे इस विशेष प्रश्न पर लागू नहीं है, तो आप (सर्वर [नहीं सर्वर अनुप्रयोग]) इस त्रुटि कॉल प्राप्त करने वाला (प्राप्त हो रहे हैं उपलब्ध नहीं है और गायब हो गया;) जब पॉप-अप विंडो और ओपनर विंडो के बीच संचार करते हैं, तो ऐसा इसलिए होता है क्योंकि पॉप-अप विंडो ने एक ऑब्जेक्ट बनाया जो इसे ओपनर विंडो में पास कर देता था। जब पॉप-अप विंडो बंद होती है, तो इंटरनेट एक्सप्लोरर पॉप-अप विंडो द्वारा बनाई गई सभी ऑब्जेक्ट्स को मारता है। और चूंकि वस्तु संदर्भ द्वारा पारित की जाती है, ऑब्जेक्ट जिस पर सलामी बल्लेबाज विंडो संदर्भ अब चला गया है। JSON.stringify का उपयोग कर ऑब्जेक्ट को JSON स्ट्रिंग में परिवर्तित करके मूल्य से गुजरना एक आसान कामकाज है। फिर आप JSON.parse() का उपयोग कर स्ट्रिंग को विंडो.ऑनर में किसी ऑब्जेक्ट में कनवर्ट कर सकते हैं।

उदाहरण:

पॉप-अप विंडो:

window.opener.callback(JSON.stringify({ 
    id: 1, 
    name: "foo" 
})); 

ओपनर विंडो:

window.callback = function (response) { 
    var foo = JSON.parse(response); 
}; 

इस दृष्टिकोण का उपयोग करना, सलामी बल्लेबाज खिड़की नहीं रह गया है उद्देश्य यह है कि में बनाया गया था संदर्भित कर रहा है पॉप-अप विंडो, तो पॉप-अप बंद होने के बाद ओपनर विंडो में ऑब्जेक्ट जीवित रहेगा।

0

आप एक्सेल

में इस त्रुटि प्राप्त कर सकते हैं
Sub LoadParameterForm() 

If frmParm Is Nothing Then 
    Set frmParm = New frm_setParameters 
End If 

frmParm.Show 
end sub 

यहाँ frmParm एक मॉड्यूल स्तर चर रहा है। ओके बटन पर क्लिक करने के लिए, मेरा इरादा है .इड() फॉर्म ताकि उपयोगकर्ता के विकल्प चिपचिपा हो। यदि उपयोगकर्ता नियंत्रण बॉक्स एक्स पर क्लिक करता है और फ़ॉर्म को बंद करता है, तो आपके पास अनिवार्य रूप से frmParm है जो उस समय पर इंगित करता है जो अब मौजूद नहीं है।

मुझे इस स्थिति की जांच करने का कोई तरीका नहीं मिला है, मैं त्रुटि के लिए जाल करता हूं, फॉर्म को कुछ भी सेट नहीं करता और पुनः प्रयास करता हूं।

मुझे एहसास है कि यह वास्तव में सवाल नहीं पूछा जा रहा है, लेकिन यह पोस्ट में कई बार उल्लिखित संबंधित एक्सेल मुद्दे का एक ठोस उदाहरण है।

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