2010-01-26 3 views
1

У меня есть веб-сайт ASP.net и внутри своей страницы .aspx есть функция JavascriptGetProperty проблема

и от моего SilverLight проекта, я хочу, чтобы получить значение свойства в яваскрипта несильно я использовал «Eval "оценить функцию и GetProperty для возврата значения я хочу

проблема заключается в GetProperty работу только тогда, когда я вызвать функцию второй раз , но никогда не возвращаются в первом вызове

Javascript код:

function RETURNIMAGE() { 
     var x = { value: document.getElementById("ImageContainer").value }; 
     return x;  } 

C# код:

string getImage = "document.getElementById('myIFrame').contentWindow.RETURNIMAGE();"; 
     ScriptObject imgObject = HtmlPage.Window.Eval(getImage) as ScriptObject; 
     var img = imgObject.GetProperty("value"); 

любая помощь, пожалуйста?

+0

Добро пожаловать в SO, пожалуйста, уделите несколько минут, чтобы прочитать FAQ и документацию Markdown (полезный synposis, который доступен в правом поле при редактировании вопроса). – AnthonyWJones

ответ

0

Поскольку он работает во второй раз, я сильно подозреваю, что в первый раз IFrame все еще загружает его содержимое. Как Silverlight, так и браузер будут взаимодействовать друг с другом своими различными действиями.

0

Вот что может помочь остановить код до загрузки страницы: Скрытый объект/свойство можно поместить в фрейм, но убедитесь, что он находится после того, как свойство будет извлечено. Затем цикл «while» может быть вставлен в код C#, чтобы проверить, существует ли это скрытое свойство (цикл прерывается только при правильном загрузке значения свойства), а затем остальная часть вашего кода после цикла while.

Это решение может быть не оптимальным, но может использоваться для проверки того, является ли оно проблемой загрузки или нет.