1

現在取り組んでいるプロジェクトには、機能に「論理的な」エラーがある可能性があるという結論に達しました。

現在、PHP/MySQL と JQuery でサーバー テクノロジを使用しています。ページ内には、タグ付きの通常のリンク参照があります

<a href="contentpage?page=xxx">next step</a>

問題点は、同じ要素で指定された jquery クリック イベントのようです。その意図は、php セッション コマンドを使用して、別の php スクリプトを介してページの (現在の) コンテンツ (-> フォーム要素) を保存することでした。何らかの理由で、IE は標準の html コマンドを実行する直前に Jquery のクリック イベントを処理できます。これにより、現在のページが新しいページ パラメータで再度リロードされます。FF を使用すると、動作が異なります。FFは最初にhtmlコマンドを実行し、その後クリックイベントを処理するjavascriptコードを実行すると思います。したがって、ここの結果セットはそれぞれ空です。

私の質問は、あなたが同じ経験をしたかどうか、そしてこの問題をどのように処理/回避したかです。

あなたのヒントやさらなるフィードバックに感謝します。おそらく、現在のアーキテクチャについて再考する方法についての解決策もあるでしょう。

よろしく、 オリバー

4

2 に答える 2

1

実際、Firefoxはイベントを発生させ、ハイパーリンクがリダイレクトアクションを実行する前に、それに接続されているコマンドを実行します。コマンドの実行中にエラーが発生し、Firefoxがエラーをスローし、jQuery関数ブロックがそれを処理している間にIEがアクションを完了できるようにした可能性があります。例外がスローされたことに気付かないでしょう。従来のonclickイベントでテストボタンを作成し、関数をテストして、Firefoxで機能しているかどうかを確認します

于 2010-03-28T20:13:56.863 に答える
0

私があなたを正しく理解している場合、あなたはclickイベントをリンクに割り当て、そのhref場に残して発砲する準備ができています。clickユーザーがリンクをクリックしたときにイベント内のJavaScriptが実行されるまでの残り時間は限られており、任意であるため、これは非常に賢明ではありません。ブラウザが異なれば、これも異なる方法で処理される可能性があります。とにかく、これは間違ったアプローチです。アクションが完全に実行されることを確信することはできません。

通常のアプローチは、clickイベントreturn falseを発生させ、リンクが起動するデフォルトのアクションを防ぎ、location.href = this.hrefすべてが完了したらリラックスして実行することです。

Ajaxを使用してデータを送信している場合は、そのlocation.href部分をsuccessAjax呼び出しのコールバックに入れます。そうすれば、データが送信されることを100%確信できます。

于 2010-03-28T20:10:37.647 に答える