2

これはおそらくロングショットですが...

BlackBerry OS5 Web ブラウザーで jQuery の show() を使用して問題が発生し、(デバイス上で) 動作しないか、電話がクラッシュする (シミュレーター) という問題に遭遇した人はいますか? 健全な場合、回避策は見つかりましたか?

.show() を使用しても .css('display','block') を使用しても同じことが起こります

OS6、iOS、Firefox、Chrome などで動作しますが、OS5 ブラウザでは機能しません。

ああ、私は追加する必要があります:

私たちが知る限り、これは実際のサーバー (JSF、websphere) のアプリケーションを実行する場合にのみ問題になります。jQuery を静的ページとしてローカルでテストすると、正常に動作します。

4

2 に答える 2

1

私の職場のチームも jQuery Mobile を使用しており、デバイスで同様の問題に遭遇しました (これによるシミュレーターのクラッシュは見たことがないと思いますが)。これまでに見つかったものは次のとおりです。

  • への呼び出しは機能してshow()いる可能性がありますが、処理が非常に遅いため、ロードする前にあきらめてしまいます。 ページ上の属性または要素を追加、削除、または変更するたびに、Web ページの DOM 全体が処理されます。BlackBerry フォーラムの投稿では、要素を変更してからパフォーマンスを向上させることを提案しています。

  • 一部のデバイスでは への呼び出しが機能することがわかっていますshow()が、UI はページを少し上下にスクロールした後にのみ更新されます。ページが短すぎてスクロールできない場合は、うまくいかない可能性があります。

  • このonclick属性はタッチ スクリーンでは無視されているように見えますが (ただし、トラックボール/タッチパッド デバイスでは正常に機能します)、show()呼び出しがアクションにならない理由である可能性があります。ハイパーリンクがすべてのデバイスで機能するようにするには、 JavaScript 呼び出しをonclickhref属性の両方に配置します。
    <a href="javascript:showThings();" onclick="javascript:showThings();">Show</a>

  • メソッドから JavaScript を呼び出す場合onclick、メソッド呼び出しの先頭にjavascript:次のように追加する必要がありました
    <a href="#" onclick="javascript:showThings();">Show</a>
    (最近のほとんどのブラウザーは、onclick値が JavaScript として評価されるべきであると想定しています) 。

  • フォーカスベースのナビゲーションはデフォルトでは有効になっていないため、トラックボール/サムパッド デバイスを使用しているときに問題が発生しました (画面がロックされ、キーを押しても反応しなくなりました)。プロジェクトで、config.xmlまたはRIM 固有のハイパーリンク属性を使用して、フォーカス ベースのナビゲーションを有効にすることができます。でこれを有効にした後にどのような問題が発生したかは忘れましたconfig.xmlが、x-blackberry-initialFocus代わりにハイパーリンク属性を使用することになりました。

上記のポイントのどれがあなたの状況に当てはまるかを正確に言うのは難しいです.うまくいけば、何かが関連しているか役に立つでしょう. 私のチームは、これまでのところ、BlackBerry での Web 開発の経験、特に OS 5 と 6 の間、およびトラックボール/サムパッドとタッチ デバイスの間に見られる違いに感銘を受けていません。

于 2011-07-19T03:11:11.337 に答える
1

私たちが見つけた問題は、OS5 のブラウザーが、表示プロパティを BLOCK から NONE に変更するときに DOM を更新する際に問題があるということです。BlackBerry の担当者は、OS5 で DOM を更新するのは避けたほうがよいとさえ言っています (うーん!)。

したがって、私たちが最終的に行った解決策は、クラス名を使用せず.show().hide()代わりにトグルすることでした。OS5 を除くすべてのデバイスでは、クラス名で表示プロパティを切り替えますが、OS5 では高さを からautoに切り替えます。0px

これはOS5を幸せにしました。

とはいえ、いくつかの変数についてはまだ説明していません...コードを静的ページとしてローカルで実行し、シミュレーターで問題なく実行できるなどです。しかし、サーバーからページをロードしようとすると、まったく同じコードがクラッシュします。

アプリの他の場所でも問題なく .show() を使用できます。

最後に、子要素の一部が切り替えられている場合にブラウザを強制終了するのは、親要素に適用される CSS の特定の組み合わせだと思いますdisplay

于 2011-07-19T05:02:12.580 に答える