0

私はこのコードを持っています:

<html><head></head><body>
    <script language="javascript" type="text/javascript">
        function f(){
             //WHAT I HAVE TO PUT HERE?
        }
        function unloadFCT() {
             //CODE WHEN THE WINDOW IS UNLOADED
        }               
        var val = navigator.userAgent.toLowerCase();
        if(val.indexOf("msie") > -1){
             window.attachEvent('onbeforeunload', unloadFCT);
        }
        else{
             window.onunload = unloadFCT;   
        }
</script>
<a href="#" onclick="f()" >Call unloadFCT() function</a>
</body></html>

f() の目的は、unloadFCT() のコードを実行することです。

f() のコードを誰が教えてくれますか?

4

2 に答える 2

1

/ * ** * ** * **** test1.php * ** * ** * *** /問題を理解するための簡単な例を作成します。以下は、test1.phpファイルの内容です。

<html><head></head><body>
<script language="javascript" type="text/javascript">
var xhrHttp;
function getXHRObject() {
   var obj = false;
   try {
      obj = new ActiveXObject("Msxml2.XMLHTTP");
   }
   catch (e) {
      try {
         obj = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (e) {
         try {
            obj = new XMLHttpRequest();
         }
         catch (e) {
            return false;
         }
      }
   }
   return obj;
}
function unloadFCT() {
    xhrHttp = getXHRObject();   
    xhrHttp.open("GET", "ajaxCall.php", false);
}       

var val = navigator.userAgent.toLowerCase();
if(val.indexOf("msie") > -1){
    window.attachEvent('onbeforeunload', unloadFCT);
}
else{
    window.onunload = unloadFCT;    
}

このウィンドウを閉じると、ajaxCall.phpと同じ場所に新しいファイルが作成されます

/ * ** * ** * **** ajaxCall.php * ** * ** * *** /

<?php
    $handle = fopen("myFile_".time().".txt", 'a+');
    fwrite($handle, "simple message..."); 
?>

/ * ** * ** * **** test2.php * ** * /

<html><head></head><body>
<script language="javascript" type="text/javascript">
var xhrHttp;
function f(){
    unloadFCT();
    window.close();
}
function getXHRObject() {
   var obj = false;
   try {
      obj = new ActiveXObject("Msxml2.XMLHTTP");
   }
   catch (e) {
      try {
         obj = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (e) {
         try {
            obj = new XMLHttpRequest();
         }
         catch (e) {
            return false;
         }
      }
   }
   return obj;
}
function unloadFCT() {
    xhrHttp = getXHRObject();   
    xhrHttp.open("GET", "ajaxCall.php", false);
}       
var val = navigator.userAgent.toLowerCase();
if(val.indexOf("msie") > -1){
    window.attachEvent('onbeforeunload', unloadFCT);
}
else{
    window.onunload = unloadFCT;    
}       

undoFCT()関数のコードを実行し、このウィンドウを閉じます!!!

/ * ** * ** * ** ****問題**** ** * ** * * / _ _ _ _

test2.phpの何が問題になっているのか教えていただけますか?f()関数でunloadFCT()のコードを実行し、現在のウィンドウを閉じます。

于 2012-04-19T11:35:54.743 に答える
0

後に window.close() を追加する必要がありますunloadFCT();

于 2012-04-19T13:16:03.167 に答える