Я недавно столкнулся с этой же проблемой и нашел следующее решение. Если вы попытаетесь назначить URL-адрес напрямую следующим образом:
document.location.href = theUrlWithTheCustomProtocol;
вы столкнетесь с этой ошибкой в 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");
При использовании document.location.href это позволяет преодолеть ограничение на число символов в IE 508, и это решение работает для IE, FireFox, Chrome и Safari.