Edw*_*lde 6 browser url internet-explorer uri http
我在Internet Explorer中遇到硬限制,应用程序协议的长度超过508个字符.此限制不会在其他浏览器,Chrome等中强制执行...
MSDN(1)上的文档似乎没有提到URI的方案特定部分或包括方案的总长度的最大允许长度.
508个字符远低于IE报告的2083个字符的网址的一般限制(2).
有谁知道这是否是预期的行为,我使用的是IE8,或者我在这里遇到了什么问题?
参考文献:
我最近遇到了同样的问题,并提出了以下解决方案。如果您尝试像这样直接分配 URL:
document.location.href = theUrlWithTheCustomProtocol;
Run Code Online (Sandbox Code Playgroud)
您将遇到此 508 个字符限制错误,而在 IE8 中,您将收到一个 JavaScript 错误,内容是“传递给系统调用的数据区域太小”。
为了解决这个问题,我从上面的代码切换到使用 JQuery 创建一个隐藏的 iframe,如下所示:
// Remove old frame
$('#hiddenIFrame').remove();
// Add new one
$('<iframe />', {
'id': 'hiddenIFrame',
'name': 'hiddenIFrame',
'src': theUrlWithTheCustomProtocol,
'style': 'display: none;'
}).appendTo("body");
Run Code Online (Sandbox Code Playgroud)
这使用 document.location.href 绕过了 IE 508 字符限制,并且此解决方案适用于 IE、FireFox、Chrome 和 Safari。
小智 3
508 + some bookkeeping = 512 bytes
Run Code Online (Sandbox Code Playgroud)
我认为浏览器在分离协议之后,将其存储在固定大小的临时缓冲区中。为什么,我不知道,这似乎是未来可能会改变的行为。不要指望它。
我还想知道为什么你需要这么长的协议。即使 aGUID用十六进制数字加破折号表示也只有 36 个字符。
| 归档时间: |
|
| 查看次数: |
4397 次 |
| 最近记录: |