tags:

views:

34

answers:

3

I have an ASP.net website and inside its .aspx page there is a javascript function

and from my silverlight project , i want to get a value of property in the javascript funcion i used "eval" to evaluate the function and GetProperty to return the value i want

the problem is GetProperty work only if i call the function for the second time but never return in the first call

javascript code:

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

c# code:

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

any help please?

A: 

Since it works the second time I strongly suspect that the first time the IFrame is still loading its contents. Both Silverlight and the Browser will be getting on with their various activities asynchronously from each other.

AnthonyWJones
A: 

so what is the solution for my problem,I mean how to deal with iframe synchronously ?

Mandoleen
A: 

Here is something that might help to halt the code until the page loads: A hidden object/property can be put in the frame, but make sure it is after the property to be fetched. Then a 'while' loop can be inserted in the c# code to check that this hidden property exists (the loop breaks only when the property value is loaded correctly), then put the rest of your code after the while loop.

This solution may not be optimum, but may be used to check if it is a loading problem or not.

SF