В нашем приложении silverlight мы устанавливаем свойство location hash окна браузера для закладки текущего элемента управления и запрашиваемых параметров запроса. Это делается с помощью javascript через Silverlight следующим образом:
var hashCode = "Example.ControlNamespace.ClassName?clientID=62189";
HtmlPage.Window.Eval(string.Format("window.location.hash='{0}'", hashCode));
Это работает достаточно хорошо, но мы получаем периодические ошибки из производства, где это не работает с треком стека, который заканчивается на этой строке...
System.InvalidOperationException: Eval failed. at System.Windows.Browser.HtmlWindow.Eval(String code)
Это происходит только иногда, но я хотел бы знать, что является причиной этого. Я смог воспроизвести это один раз, используя IE8, поэтому я не думаю, что это происходит из-за каких-то непонятных браузеров. Похоже, что иногда не удается установить хэш, но я не знаю почему. Также, если это имеет значение, сайт размещен на защищенном соединении, https.
Заранее спасибо.
Edit: Я смог воспроизвести это снова. При отладке javascript ошибка была 'permission denied'. Похоже, что это происходит только при первой загрузке страницы, так что, возможно, страница еще не закончила загрузку, и хэш url не разрешено изменять, пока она не будет завершена?