0

我有一个 index.html 文件,其中包含几个以这种方式重定向到其他页面的 onclick 事件处理程序:

onclick="window.location='page2.html';"

我正在处理后退按钮

blackberry.system.event.onHardwareKey(blackberry.system.event.KEY_BACK, function() { 
        window.history.go(-1);
        return false;
    }); 

因为否则应用程序会在 OS 6.0 上退出(在 5.0 中不需要它)

当我从 page2.html 返回 index.html 时,index.html 中的所有 onclick 处理程序都可以工作,除了重定向到我刚刚来自的页面(在本例中为 page2.html)的处理程序。我尝试为 onclick 处理程序使用单独的函数,发现它确实被触发了,但它里面的 window.location 函数没有被执行。

奇怪的是,window.location 函数在用触摸屏点击时被执行,而不是用触控板,而且仅在 6.0 中。在 5.0 中它工作正常。

任何帮助,将不胜感激

4

1 回答 1

1

您能否尝试将您的 onclick 更改为类似的内容(出于调试目的)

onclick=" 尝试 { window.location='page2.html'; } catch(e) { alert('error: ' + e); } "

如果发生运行时错误,那么它应该提醒您。

在旁注中,我有点担心更改应用程序中的页面/内容的技术。如果您没有正确实现这一点,您可能会遇到内存问题。您是否考虑过使用任何处理加载/卸载页面片段的框架?

查看bbUI.js是如何做到这一点的。

“bbUI 工具包以针对目标操作系统最优化的方式构建应用程序的 UI。它遵循将屏幕作为 HTML 片段加载到其中的单个网页的方法。每个屏幕都是其自己的 HTML 片段文件。然后,该工具包使用 AJAX 从堆栈中推送和弹出屏幕。工具包管理屏幕堆栈和加载内容。这确保了设备内存的最佳使用。

于 2012-10-15T17:21:06.287 回答