1

我目前正在构建一个 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 文件和深度链接?

4

2 回答 2

1

这两个是最好的,我建议你两个都用。话虽如此,我会尝试调试 javascript/flex 以了解为什么这在 IE9 中不起作用并修复两个开源项目的代码,以便其他开发人员可以从中受益。

于 2011-08-24T02:40:48.543 回答
0

发生这种情况的原因是 Adob​​e 在 IE9 出现后从未更新 history.js。那里有处理一些被错误触发的 IE7 错误的代码。

要修复您的 history.js,请插入以下代码:

在第 22 行之后插入:

ie9: false,

在第 72 行之后(第 71 行是什么):

else if (browser.version == 9)
{
    browser.ie = false;
    browser.ie9 = true;
}

那应该解决它。

于 2012-08-20T18:16:46.080 回答