सवाल आईई 8 पर पहुंच प्राप्त करने से इनकार किया जा रहा है


मेरे पास एक HTML फॉर्म है (upload.htm) इसके अंदर एक HTML फ़ाइल अपलोड नियंत्रण के साथ।

<form id="frmupload" name="upload" enctype="multipart/form-data" action="uploadhandler.ashx" method="post">
    <input id="uploader" name="uploadctrl" type="file"/>
</form>

उपरोक्त पृष्ठ में एक जावास्क्रिप्ट विधि भी है जो इस प्रकार है:

function performUpload(){
    document.getElementById('frmupload').submit();
}

मैं इसे एक पृष्ठ के अंदर बुलाता हूं (uploadpage.htm) एक के भीतर से iframe:

<iframe id="docframe" src="upload.htm" style="display:none"></iframe>

मैं नीचे दिखाए गए बयान को निष्पादित करने का प्रयास करता हूं uploadpage.htm पृष्ठ:

var i = document.getElementById('docframe');
i.contentWindow.performUpload();

मुझे एक त्रुटि कह रही है प्रवेश निषेध है, और मेरे डीबगर ने दिखाए गए पहले जावास्क्रिप्ट फ़ंक्शन पर रोक लगा दी है। दोनों फाइलें वेब प्रोजेक्ट में एक ही स्थान पर हैं। उनके पास एक ही डोमेन नाम भी है। मुझे तब यह त्रुटि क्यों मिलती है?

बेशक, पहले, मैं पृष्ठ पोस्ट कर सकता था: जब मैंने सेट नहीं किया था name एचटीएमएल अपलोड नियंत्रण के लिए विशेषता। लेकिन जब मैं HTML मार्कअप में नाम विशेषता सेट करता हूं, तो मुझे यह अजीब त्रुटि मिलती है। मुझे पहली बार क्यों नहीं मिला?

इस पोस्ट को देखने के लिए -> आईई 8 में आईफ्रेम तक पहुंचने का प्रयास करते समय "एक्सेस अस्वीकार कर दी जाती है", लेकिन यह मदद नहीं की।


44
2017-10-14 15:43


मूल




जवाब:


आईई सुरक्षा कारणों से जावास्क्रिप्ट से प्रकार = "फ़ाइल" इनपुट तत्व के हेरफेर की अनुमति नहीं देता है। फ़ाइल नाम सेट करना या ब्राउज़र संवाद दिखाने के लिए एक क्लिक ईवेंट का आह्वान करना परिणाम सबमिट करने पर "एक्सेस अस्वीकृत" त्रुटि होगी - इंटरनेट एक्सप्लोरर को याद रखने के बारे में चालाक है कि किन तरीकों का आह्वान किया गया है।

इसी तरह की समस्या: http://www.webdeveloper.com/forum/showthread.php?t=181272


97
2017-12-02 13:15



इस जवाब की पुष्टि करनी है। मैं अपने फॉर्म अपलोड के साथ बेतरतीब ढंग से एक समस्या की तलाश कर रहा था, जहां वास्तव में मैं आईई में कस्टम फ़ाइल इनपुट का उपयोग कर रहा था और इससे एक्सेस को अस्वीकार कर दिया गया था। महान अंतर्दृष्टि, thx - Conor Power
मैं क्या खो रहा हूँ? यह पहेली यह जवाब साबित करने लगता है; jQuery के बजाय एन्डर / बीन का उपयोग करके मुझे आईई 9 फाइल पिकर खोलने और जेएस के माध्यम से जेनरेट किए गए आईफ्रेम में फॉर्म जमा कर रहा है और यह काम करता है: jsfiddle.net/NkycS/27 - RwwL
आह, मुझे मिल गया - मेरे फ़ाइल इनपुट पर इसका नाम विशेषता नहीं थी। जैसे ही मैं एक जोड़ता हूं, मुझे पहुंच से वंचित त्रुटि मिलती है: jsfiddle.net/NkycS/32 - RwwL
तो, क्या कोई कामकाज है? - Travis Webb
यह अब भी हो रहा है। कामकाज की तलाश में :) - Sergio Tulentsev


पारंपरिक रूप से, जावास्क्रिप्ट एचटीएमएल तक पहुंच input type="file" सुरक्षा चिंताओं के लिए गंभीर रूप से सीमित है। AFAIK, आप फ़ाइल अपलोडर तत्व पर जेएस के साथ निम्नलिखित नहीं कर सकते हैं:

  1. आप तत्व के "मान" को नहीं पढ़ सकते क्योंकि यह फ़ाइल नाम रखता है।
  2. आप जेएस के माध्यम से फ़ाइल चयन मेनू को फायर नहीं कर सकते हैं।
  3. आप जेएस के माध्यम से फ़ाइल अपलोडर नियंत्रण जमा करने में आग नहीं लगा सकते हैं।

जेएस के माध्यम से पृष्ठभूमि में अपनी फाइलों को चोरी करने जैसे दुर्भावनापूर्ण हमलों को रोकने के लिए यह सब जगह है। मैंने एक के साथ खेला नहीं है input type="file" कुछ समय में तत्व लेकिन मेरा सबसे अच्छा अनुमान यह है कि आप अन्य ब्राउज़रों में भी इसी तरह के मुद्दों (यदि नहीं सभी) हिट करेंगे।

आपका सबसे अच्छा शर्त फ़्लैश आधारित समाधान है या शायद कुछ नया एचटीएमएल 5 नियंत्रण है।

इसके अलावा, यहां विषय वस्तु पर आधिकारिक संदर्भ दिया गया है:

http://msdn.microsoft.com/en-us/library/ms535263(v=vs.85).aspx

उपरोक्त पृष्ठ के नीचे सभी तरह से "सामुदायिक सामग्री" की जांच करें।


13
2018-06-16 18:18





दोनों HTML फ़ाइलों में - वह फ्रेम जो फ्रेम में है और दूसरा जिसमें फ्रेम है - जोड़ने का प्रयास करें document.domain='example.com' जहां 'example.com' आपका डोमेन नाम है।


0
2017-10-15 11:32



मुझे काम नहीं किया - Oxon