2011-05-14 17 views
0

したがって、内部にiframeを持つシンプルモダールボックスを作成します。 iframeには、それが提出された後に関数を呼び出すテキストボックスがあります。この機能は、次に、それ自身のコマンドを実行して実行します。私がしたいのは、人がシンプルモダールボックスを閉じるためにテキストを提出した後です。モーダルのIDを設定できる属性を実際には見たことがないので、関数外で参照することができます。ここに私のコードです:Simplemodalを外部から閉じることができません

モーダル:

$.modal('<iframe src="chrome-extension://kdcfmjjkjcgaklpmpnhcmieepkiddfen/options.min.html" height="120" width="300" style="border:0">', { 
       close: true, 
       closeHTML:"", 
       containerCss:{ 
        backgroundColor:"#000", 
        borderColor:"#000", 
        height:100, 
        padding:0, 
        width:300, 
        height:125 
       }, 
       overlayClose:true, 
       opacity:50, 
       overlayCss: {backgroundColor:"#000"} 
      }); 

options.min.html:

passMessage:あなたはモーダルを見ることができるよう

function passMessage() { 
     var value = document.getElementById('speechInput').value; 
     var event = "commands" 
     $.modal.close(); 
     chrome.extension.sendRequest({command:value}, function(response) {}); 
    } 

options.min.htmlを使用してモーダル内に音声入力ボックスを作成します。ユーザーが会話を停止すると、そのボックスから値が取得される別の関数が呼び出されます。しかし、$ .modal.close();関数は実際にモーダルを閉じるわけではなく、代わりに私のプログラムをハングアップし、どこにも行きません。他の場所で作成されたモーダルを参照する方法を知る必要があります。任意のヘルプ

+0

$ .modal.close();以降です。 http://www.ericmmartin.com/projects/simplemodal/のiframeの例では動作しているようです(Chromeコンソールから実行しました)、あなたのために動作するはずです。プログラムがハングアップすると、コンソールにエラーや警告は表示されませんか?そこにブレークポイントを設定しましたか?直前の行(var event = "commands")の後ろにセミコロンがないだけですか? – RwwL

+0

私は$ .modal.close()コマンドの前後に警告を出し、beforeコマンドだけを実行します。これは$ .modal.close()コマンドでハングアップし、実行されるだけで何も停止しません。 var event = "commands"行は実際には自分のコードでコメントアウトされているので、まったく効果はありません。モーダルは開いたままであり、sendRequestは送信されません。 $ .modal.close()行を削除すると、sendRequestが実行されます。 – eric

+0

$ .modal.close()をconsole.log($。modal)に置き換え、ログに記録される内容を確認してください。 jsfiddleやjsbinにページ、または関連する部分だけを投稿できますか? – RwwL

答えて

0

ため

おかげであなたは、次のJavaScriptを使用して、インラインフレーム内からモーダルを閉じたい場合は:simplemodal-overlay:IDのためとして

parent.$.modal.close(); 

を、SimpleModalは、自動的にダイアログの要素に追加します、simplemodal-container、およびsimplemodal-data

+0

それのどれもうまくいきませんでした。それは密接な部分でまだ失速している。私は外部関数からモーダルを閉じようとしています。これは、shortcuts.jsからoptions.min.htmlに戻り、shortcuts.jsに戻り、ここでモーダルを終了してコマンドを続行します。しかし、それは私が混乱しているところですが、shortcuts.jsに戻るときに停止します。私は、さまざまな方法でモーダルを参照するクリックをトリガしようとしました、そしてそれを閉じるためにしようとしている他のランダムなものの全体の束が、決してそれはありません。 – eric

関連する問題