Flex应用程序中的深层链接

时间:2011-08-24 00:50:42

标签: flex swfobject deep-linking swfaddress

我目前正在构建一个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文件和深层链接的库是什么?

2 个答案:

答案 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;
}

那应该解决它。