2009-05-14 19 views
1

私は(実際にはPHPで生成された)htmlページを持っているので、フォームを含むポップアップウィンドウになります。すべての私のjavascriptのものは、別々のjavascriptファイルにあります。私はそれがresulttextのフォームからjavascriptファイルから関数を呼び出すことが可能かどうかを知りたい。フォームの結果からjavascript関数を呼び出す

はここで、テキストファイルの名前を示している生成された結果、ファイルをアップロードした後、最初のHTMLページ

<script type="text/javascript" src="x.js"></script><h1>hello</h1> 
<div id='form'> 
<a href='#' onclick="makewindows('<form action="process.php" method="post" enctype="multipart/form-data "><label for="file">Filename:</label><input type="file" name="file" id="file"/> <br /><input type="submit" name="submit" value="Submit" onclick="" /></form>'); return false;"> 
click here</a> 
</div> 

です。 x.jsには元のウィンドウのdivを更新する関数があります。通常のHTMLページからこれを呼び出せますか?ここで

は私がのonclickで関数を呼び出すにしたくないmaewindows

function makewindows(html){ 
child1 = window.open ("about:blank"); 
child1.document.write(html); 
child1.document.close(); 
} 

ためのコードですが、私は、フォームの結果をテキストからそれを呼びたいです。

答えて

0

makewindowsは何をしますか? おそらく、そのHTMLをテンプレートに入れるか、ある種のファイルを別のものに置きたいと思うかもしれません。 はい、フォームイベント、onsubmitイベントからjavascriptを呼び出すことができます。

+0

私はonclickから呼びたくないので、フォームの結果から呼びたいと思います。 Makewinowsはポップアップウィンドウを作成するだけです。 – Josh20002

0

はい、できます。 htmlファイル自体の中で定義されている関数と同じように、名前で呼び出す必要があります。

+0

私はjavascript関数を呼び出す方法がわからないのですが、それがonclickであるか、または何かにアタッチされていなければ... – Josh20002

+0

0

トビアスは正しいです。

オープナープロパティがない場合、メインウィンドウとターゲットウィンドウは通信できません。つまり、タイはありません。

この記事では、オンクリックの1つの解決策を示しています。 あなたは遊ぶのが楽しいかもしれません。 http://homepage.mac.com/bigeuniverse/tests/targetwindows/

しかし、今日では、リスナーとそれに関連付けられた機能でこれを行うのが最適です。 私はあなたの 'makewindows'ファンクションのオープナーを明確に定義し、ウィンドウを定義します。

PARENT:このように :

var child1 = null; 
function makewindows(html) 
{ 
    if (!child1 || child1.closed) { 
     child1 = window.open(...); 
     ...//rest of original code 
    } else { 
     child1.focus(); 
     /* in case it's okay to simply open the same window 
      for another upload; otherwise, nix this section*/ 
    } 
    if (child1.opener == null) { 
      child1.opener = self; 
    }   
} 

CHILD: x.js仮には 'childListener' という名前の関数を持っています あなたprocess.phpはに自己実行するJavaScript 機能を提供できます "以下のような子供のページ:

var talkToParent = function(saywhat) 
{ 
    opener = opener || self.opener || window.opener; 
    if (opener != null && saywhat) { 
     opener.childListener(saywhat); 
    } 
}($uploaded_filename); 

は、これはすぐに限り、アップロードされたファイル名が配信されたとして、(当然のスクリプトタグ内から)を実行します。その場合、ファイル名の代わりにPHPを提供するようにPHPを設定すると、実際にアップロード時のエラーを親に警告することができます。ここでも、これは 'childListener'関数がx.jsまたはオープナーページから呼び出された他のスクリプト内にあることを前提としています。

関連する問題