我的wpf应用程序有一个非常奇怪的问题。 我使用webbrowser控件来显示使用flash提供某些功能的第三方网页。
在Internet Explorer 9和10上我有一个特殊的行为:我第一次打开webbrowser控件时一切正常,应用程序将.SWF文件放在我的临时Internet文件夹中。当我关闭并重新打开web控件时,会出现以下错误:
"对象不支持属性或方法' UpdateTimeLeft'"。
如果我手动删除临时文件夹中的.SWF文件,请关闭广告重新打开该应用程序,一切正常。
这是出现异常的代码:
var swfUrl = "//" + serverName + "/js/tv/FlashTurboLotto3.swf";
var expressSwfUrl = "//" + serverName + "/js/tv/expressInstall.swf";
var flashvars = {};
var params = {wmode:"transparent", allowscriptaccess:"always" };
var attributes = {id:"FlashTurboLotto3", name:"FlashTurboLotto3", align:"top"};
swfobject.embedSWF(
swfUrl,
"flashcontent",
"100%",
"197",
"9.0.0",
expressSwfUrl,
flashvars,
params,
attributes
);
function updateTimeleft(drawID, timeleft)
{
var swf = document.getElementById("FlashTurboLotto3");
swf.updateTimeleft(parseInt(drawID), timeleft);
}
有没有人知道为什么会出现这种情况以及如何解决这个问题? 提前谢谢。
答案 0 :(得分:0)
我找到了解决方案 - 这是Flash的一个非常特殊的错误。有时会发生当Flash应用程序在非本机浏览器中运行时(例如,在我的情况下,WPF中的webbrowser控件),javascript在从缓存中检索.swf文件时失败,因此Flash对象将不会被初始化。 / p>
目前,我解决了强制不使用浏览器缓存,只是在.Swf下载网址中添加随机值。