2011-08-08 15 views
1

私は、異なるIDを持つ一連の動的jquery UIダイアログを持つページを持っています。例:URLから動的jquery UIダイアログを読み込むにはどうすればよいですか?

<div id="message-1"> 
content 
</div> 

<div id="message-2"> 
content 
</div> 

URLに基​​づいて適切なダイアログボックスを起動できるコードが必要です。

たとえば、URLがhttp://url.com/#message-2の場合、適切なダイアログボックスのみが開きます。

私は、次のようなコードを基礎として使用しようとしてきましたが、明らかに解決策ではありません。

if(window.location.href.indexOf('#message') != -1) { 
      $('.dialog').dialog('open'); 
} 

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

+0

を探していると思います - あなたは、JSメッセージIDを取得するためにPHPを使用して出力できますか? – ChrisA

答えて

1

は、私はあなたがあまりにもPHPでこれをタグ付け気づくあなたはこの

$(window.location.hash).dialog('open'); 
+0

ありがとうあなたとジョナス。 – Andy

0

urlの#メッセージ部分を取得するには、window.location.hashを使用します。

if(window.location.hash == '#message-1') { 
      $('.message-1').dialog('open'); 
} 

このコードは#メッセージ-1、#メッセージ-2 ...#メッセージ-Nと連携

if(window.location.hash != '') { 
      $('.' + window.location.hash).dialog('open'); 
} 

注:それは一例ですので、あなたは、おそらく入力を検証する必要がありますが、私はしませんでした

+0

私はそれを動的にすることでできます。 私はその行を繰り返す必要はなく、文字列ビットのメッセージ部分が正しいダイアログウィンドウを呼び出すために使用される変数になった後に番号が何であってもそれが何であれ、擬似コードで :。 URL == '#のmessage-' #message後に番号を取得し、変数 実行$( 'メッセージ - ')に設定すると、ダイアログ(' オープン');変数が追加されている うまくいけば私はここで正しく自分自身を説明しています。 – Andy

+0

私はあなたの質問をうなずきますかどうか分かりません。あなたがidを抽出しようとしているなら、私は正規表現のために行くだろう:var msgId = window.location.hash.replace(/ ^#message - ([0-9] +)$ /、 '$ 1') –

関連する問題