我有一个ASP.net网站,在其.aspx页面内有一个javascript函数
从我的silverlight项目中,我希望在javascript函数中获得属性值 我使用“eval”来评估函数,使用GetProperty来返回我想要的值
问题是GetProperty仅在我第二次调用该函数时才起作用 但在第一次通话中永远不会回来
javascript代码:
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");
有什么帮助吗?
答案 0 :(得分:0)
因为它第二次工作我强烈怀疑IFrame第一次仍在加载其内容。 Silverlight和浏览器都将以各种异步方式开展各种活动。
答案 1 :(得分:0)
这可能有助于在页面加载之前停止代码: 隐藏的对象/属性可以放在框架中,但要确保它在要获取的属性之后。 然后可以在c#代码中插入一个'while'循环来检查这个隐藏属性是否存在(仅当正确加载属性值时循环中断),然后将其余代码放在while循环之后。
此解决方案可能不是最佳解决方案,但可用于检查是否存在装载问题。