Установка хэша URL из Silverlight иногда не работает

В нашем приложении 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 не разрешено изменять, пока она не будет завершена?

5
задан Jace Rhea 23 November 2011 в 16:26
поделиться