2012-01-26 5 views
6

मैं इंटरनेट एक्सप्लोरर में एप्लिकेशन प्रोटोकॉल के साथ एक कठिन सीमा में चल रहा हूं जो लंबाई में 508 वर्णों से अधिक है। यह सीमा अन्य ब्राउज़रों, क्रोम इत्यादि में लागू नहीं है ...इंटरनेट एक्सप्लोरर में सिंक्रोनस प्लग करने योग्य प्रोटोकॉल का उपयोग कर कस्टम यूआरएल प्रोटोकॉल की अधिकतम लंबाई क्या है?

एमएसडीएन (1) पर प्रलेखन यूआरआई की योजना-विशिष्ट भाग या योजना सहित कुल लंबाई में अधिकतम स्वीकार्य लंबाई का उल्लेख नहीं करता है।

आईई में यूआरएल के लिए सामान्य सीमा से नीचे 508 वर्ण अच्छी तरह से नीचे हैं 2083 वर्ण (2)।

क्या किसी को पता है कि यह व्यवहार की उम्मीद है, मैं IE8 का उपयोग कर रहा हूं, या शायद मुझे कुछ गड़बड़ है?

संदर्भ:

उत्तर

3
508 + some bookkeeping = 512 bytes 

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

मैं यह भी सोच रहा हूं कि आपको इस प्रोटोकॉल की आवश्यकता क्यों होगी। यहां तक ​​कि GUID हेक्स अंक प्लस डैश के रूप में व्यक्त होने पर केवल 36 वर्ण हैं।

4

मैं हाल ही में इसी समस्या में भाग गया और निम्नलिखित समाधान के साथ आया। आप इस तरह से सीधे URL आवंटित करने का प्रयास करें:

document.location.href = theUrlWithTheCustomProtocol; 

आप इस 508 अक्षरों की सीमा त्रुटि में चलेंगे और IE8 में आप "डेटा एक प्रणाली कॉल को दिया गया क्षेत्र के बारे में कुछ कहने JavaScript त्रुटि मिलेगा बहुत छोटा।"

इस समस्या को हल करने के लिए, मैं इस तरह एक छिपा iframe बनाने के लिए JQuery का उपयोग कर के लिए ऊपर कोड से बदल:

// Remove old frame 
$('#hiddenIFrame').remove(); 

// Add new one 
$('<iframe />', { 
    'id': 'hiddenIFrame', 
    'name': 'hiddenIFrame', 
    'src': theUrlWithTheCustomProtocol, 
    'style': 'display: none;' 
}).appendTo("body"); 

यह document.location.href का उपयोग कर IE 508 अक्षरों की सीमा के आसपास हो जाता है और इस आईई, फ़ायरफ़ॉक्स, क्रोम, और सफारी के लिए समाधान काम करता है।

+0

मेरे परीक्षण में, यह आईई 9-11 में 2,046 अक्षरों तक सीमा बढ़ जाती है। (उत्सुकता से, यह आईई 8 में 2,047 वर्ण है।) यह केवल 4x वृद्धि है, लेकिन यह कुछ स्थितियों में पर्याप्त हो सकता है। महान खोज –

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