2012-03-05 12 views
1

jQuery .load(oracle apex url)クエリを使用するのに役立つことを本当に願っていますが、ナビゲーション・メニューを使用して固定バナーを保持するように設定したメイン・ページがあります。メニューの表示/非表示。jQueryロードの問題とOracle ApEx v4.1

メニュー項目が選択されたときに起動するjQueryコードがあります。これは基本的に、このOracle ApExアプリケーション内のページの下にある「メインコンテンツ」divにロードされます。

このメインページ内
$("#main-content").load(actualPageURL); 

が、私はまた、次のHTMLのセットアップで、私が作成した「コンテンツ」領域を有する:

<div id="page-wrap"> 
    <div id="main-content"> 
    </div> 
</div> 

したがって、上記のと、私は基本的に達成しようとしていますことはあります以前のようなiframeを使用しないという手段jQueryの.load()関数を使用しました。

メインページのメニューから離れたところをクリックしても、メニュー項目の1つがフォームを持つページに移動し、現在「デフォルト」の「リダイレクト」を使用している「作成」ボタンが押されると、 20ページ目「ボタンをクリックすると、メインマスターページの境界内にいなくなり、維持したい機能がすべて失われます。

これから、私はトップに固定されたバナーとメニューにアクセスする手段を失ってしまった。

Oracle ApExアプリケーションのページ間のリダイレクトやその他の分岐が、すべて<div id="main-content">でフィルタリング/処理され、常にjQuery $("#main-content").load(actualPageURL)機能を使用するようにする必要があります。

また、Oracle ApExアプリケーション内のすべてのページがメイン・コンテンツ・ディビジョンを通過することを確認する必要があります。

私は実際に何とかこれを行う必要がありますが、実際に行うことができるかどうか、基本的に、最高のアプローチが何であるかは不明です。

ご協力いただければ幸いです。

ありがとうございました。

答えて

1

標準のリダイレクトは「javascript:redirect()」としてHTMLに出力されます。このリダイレクト機能がapex_4_1.jsで定義されている、単にそれをオーバーライドします。

function redirect(where){ 
    alert("im overriding the original redirect! It would've brought me to "+where); 
}; 

枝は、より迷惑です。私が考えることができる最高ののは、apexボタン "apexbeforepagesubmit"を使用することです。これは、ページが頂点ボタンを介して送信されたときに発生します。 あなた自身を、それがフレームワークイベントの下で見つけることができ、この上のダイナミックなアクションを定義する、またはイベントをバインドすることができます。

$(document).bind("apexbeforepagesubmit", function(event, pRequest){ 
    alert("before submit:"+pRequest); 
}); 

リダイレクトURLは使用できなくなりますので、明らかにあなたがここにいくつかの解析を行う必要があります(そして、私はそれがサーバー側のリダイレクトであるので、あなたがそれを得ることができるとは思わない)。私が考えることができるいくつかの標準的なボタンは、レコードナビゲーションのもの(前、次)です。しかし、変更を適用すると、後処理ブランチは同じページになり、成功メッセージが表示されます。 Target TypePage in this ApplicationからURLに変更することはできますか?たとえば、javascript関数を呼び出すことができます。または、ページ1へのリダイレクトが必要なのでしょうか?

なぜ、この全体のセットアップかかわらず?固定小節とメニューが必要な場合は、カスタムページテンプレートとCSSマジックスを用意してみませんか?それは不要です。コメントに拡大

私は非常に小さなサンプルを設定している - >http://apex.oracle.com/pls/apex/f?p=26186:1 アプリケーションは、新しいテーマが私の意見では多くの優れているテーマ24に基づいて削減のおかげでレイアウトのためのテーブルの使用。 私がしたすべてはだった:

  • 共有コンポーネント>テンプレート:ノーサイドバーと標準 一レベルのタブページのコピーを取りました。私は、HTMLヘッダおよび 体内にある領域の位置3,4、周りID といくつかのdivを置きます。私は私のdivのため
  • ページをいくつか スタイリングを提供するために、CSSファイルをアップロード:また、フッターにいくつかのJavaScript(あなたが もちろん別々のファイルにあなたのジャバスクリプトを入れて、それを含めることができます)
  • 共有コンポーネント> CSSファイルを含めます0:ここで私は3と4の位置に2つの領域を作成し、それらの条件をログインページに表示しないように設定しました。ページ0の領域は、デフォルトでそのアプリケーションの各ページに表示されます。
  • ページ1:ページテンプレートの私はもちろん、私のカスタムテンプレートを選択しました。これ以上編集する必要はなく、私のテンプレートはすべての作業を処理します。そのため、左には派手に浮かび上がるメニューが、上のバーにはすべて標準装備されています。それは原油であり、すべてですが、シンプルな編集、CSS、およびJavaScriptのピンチがすべてでした:あなたはそれに慣れているはずです。

今私が作成する各ページには、同じ見てみましょう。もちろん、他のページの意志にページ1からの分岐は、リダイレクトを行うが、各ページのページ0のショーでの領域が、それらはすべて=>テンプレートとにかく同じになりますので。これは、あなたが望むものと一線を画し、Ajaxの全ルートよりもはるかに少ない作業に見えます。私はこれを作成するためにやった

は簡単です:最初に、私は(簡単にするために、既存のものをコピーした後)私のテンプレートを編集し、divの2つの領域位置を入れて、divタグにIDを与えました。 私はページを作成し、それに新しいテンプレートを割り当てました。私はそれぞれの位置に2つの領域を作成しました。それから、私は必要なものをいくつか作っていくつもりです。私はページヘッダーにスタイルタグを追加し、そこにjsを入れました。私が行ったとき、私は必要なもの(いくつかのdiv、クラス、...)を含めるためにテンプレートを編集しました。最後に、私はcssをファイルに移動し、それをテンプレートに含めました。 jsと同じです。私は領域をページ0にコピーし、ページ1から削除しました。テンプレートが完了しました。自由にそれを見て、新しいページを作成してください。それはちょうど小さなデモです。 tompetrusbe

  • 資格情報:apex_demo /デモ
  • アプリケーション:26186.固定メニューとトップバー>ログイン
  • ワークスペース - Apex.oracle.comスタイル;-)

    • のための私を撮影しないでください
  • +0

    は本当にあなたの応答と助けに感謝しますが、おそらく私は間違っています。あなたの最後の段落、つまり固定小節とメニュー用のCSSマジックのあるカスタムページテンプレートで、u plsを展開できますか?私は私の人生を困難にしているように思えます。いくつかの方向/可能な例を楽しみにしています。ありがとう。 – tonyf

    +0

    あなたがやろうと思っているようですが、メニューの有無にかかわらず、各ページの上部に同じバーがあるだけです。これがすべての場合は、おそらく、ページテンプレートの調整や作成、たとえばページバーをゼロにする(たとえば、メニューバーを常に左側のサイドバーに表示するなど)ことができます。このリダイレクト - ハッキングはあなたに多くの頭痛を与えます。 – Tom

    +0

    おかげで再びトム。私が達成しようとしている主なことは、すべてのページで固定のバナーとメニューの表示/非表示のフローティングメニューを持つことですが、アプリケーション内のすべてのページをinorderの1つの領域に表示して、可能。これはあなたのコンセプトで実現可能ですか? – tonyf

    関連する問題