我目前正在构建一个flex应用程序,并希望允许深层链接以生成好的URL,例如http://site.com/#/account/settings等。
我已经看过swfaddress 2.4和swfobject 2.2来嵌入swf并提供深层链接。到目前为止,一切都适用于Firefox和Chrome。但是,在Internet Explorer 9中,后退按钮和历史功能不起作用,这是相当令人沮丧的。
有趣的是,这里的Flex示例文件http://www.asual.com/swfaddress/samples/flex/在IE9中运行良好。在进一步检查后,似乎他们正在使用ac_OETags.js文件来嵌入他们的swf。浏览文档以及flex生成的index.html文件,似乎他们现在使用最新版本的swfobject作为嵌入swf文件的首选方法。
话虽如此,swfobject的更新时间已超过一年。我也不确定作者是否打算更新它。另一方面,我不喜欢adobe的history.js用于深层链接的方式。在我看来,像http://site.com/#view=1这样的网址看起来非常难看。
鉴于上述情况,您建议在flex 4.5项目中嵌入swf文件和深层链接的库是什么?
答案 0 :(得分:1)
那两个是最好的,我建议你同时使用它们。话虽如此,我会尝试调试javascript / flex,看看为什么这在IE9中不起作用,并在两个开源项目上修复代码,以便其他开发人员可以从中受益。
答案 1 :(得分:0)
发生这种情况的原因是Adobe在IE9问世之后从未更新过history.js。那里有代码来处理一些错误触发的IE7错误。
要修复history.js,请插入以下代码:
第22行插入后:
ie9: false,
在第72行(第71行)之后:
else if (browser.version == 9)
{
browser.ie = false;
browser.ie9 = true;
}
那应该解决它。