2012-01-26 11 views
6

私は508文字を超えるアプリケーションプロトコルを使用してInternet Explorerでハード制限を実行しています。この制限は他のブラウザ、クロムなどでは適用されません。Internet Explorerで同期プラグ可能プロトコルを使用するカスタムURLプロトコルの最大長はいくらですか?

MSDN(1)のドキュメントでは、URIのスキーム固有の部分またはスキームを含む全長のスキームの最大許容長については言及していません。

508文字は、2083文字(2)と報告されているIEのURLの一般的な制限をはるかに下回ります。

これは予想される動作であるかどうかを知っていますか、私はIE8を使用していますか、おそらく私はここで何か間違っていますか?

参考文献:

答えて

3
508 + some bookkeeping = 512 bytes 

私はブラウザは、プロトコルをオフに分割した後、一時的にバッファに格納することを考えます固定サイズ。なぜ、私は知らない、これは将来変わるかもしれない行動のように思える。それを銀行に入れないでください。

なぜこのようなプロトコルが必要なのでしょうか。 GUIDでさえ、16進数とダッシュで表現された場合、わずか36文字です。

4

私は最近、この同じ問題に遭遇し、以下の解決策を考え出しました。あなたはこのように直接URLを割り当てようとした場合:

document.location.href = theUrlWithTheCustomProtocol; 

あなたはこの508文字制限のエラーに実行され、IE8であなたがシステムコールに渡された「データ領域について何かを言ったJavaScriptエラーが発生しますです小さすぎる。"これはdocument.location.hrefを使用してIE 508文字の制限を回避しています

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

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

をし、この:この問題を回避するには

は、私はこのような非表示のiframeを作成するためのjQueryを使用して上記のコードから切り替えソリューションは、IE、FireFox、Chrome、Safariで動作します。

+0

私のテストでは、これはIE 9-11で2,046文字に制限を増加させます。 (興味深いことに、IE 8では2,047文字です)。これはわずか4倍の増加ですが、状況によってはそれだけで十分かもしれません。素晴らしい発見。 –

関連する問題