2017-12-28 26 views
1

現在、DNSやIPアドレスなどの情報を表示するdivがあります。変数が変更された場合のイベントのトリガー

IPアドレス変数が変更された場合はアラートをトリガーしようとしています。そのため、divと変数自体の変更をリッスンしています。変数が変更された場合、関数を警告またはトリガする明白な方法はありますか?

$(ipv4.ipaddr).change(function() { 
     alert("IP Changed"); 
    }); 

、通常のIP ADDRを表示するために使用するスクリプト:

if(result.ipv4){ 
    $("#btn-disconnect").show(); 
    $("#btn-disconnect-modem").show(); 
    var ipv4=result.ipv4; 
    html+="<tr><td>IPAddr</td><td>"+ ipv4.ipaddr+"</td></tr>"; 
    if(ipv4.netmask) html+="<tr><td>Netmask</td><td>"+ ipv4.netmask+"</td></tr>"; 
    if(ipv4.gateway) html+="<tr><td>Gateway</td><td>"+ ipv4.gateway+"</td></tr>"; 
    label_dns="DNS"; 
    for(var i=0;i<ipv4.dns.length;i++){ 
     html+="<tr><td>"+label_dns+"</td><td>"+ ipv4.dns[i] +"</td></tr>"; 
     label_dns=""; 
    } 
    if(proto=="wwan" || proto=="tethering"||proto=="3g"){ 
     if(result.tx) html+="<tr><td>TX Data</td><td>"+(result.tx/1024/1024>1? ((result.tx/1024/1024).toFixed(2)+" MB"): ((result.tx/1024).toFixed(2) +" KB"))+" </td></tr>"; 
     if(result.rx) html+="<tr><td>RX Data</td><td>"+(result.rx/1024/1024>1? ((result.rx/1024/1024).toFixed(2)+" MB"): ((result.rx/1024).toFixed(2) +" KB"))+"</td></tr>"; 
    } 
    if(typeof sta_connected === "function") sta_connected(); 

}else{ 
    if((proto=="wwan" ||proto=="tethering")){ 
     if(!result.disabled) html+="<tr><td>Connecting to the Internet</td></tr>"; 
    } 
    if(proto=="wisp" ||proto=="wds"){ 
     if(!result.disabled) html+="<tr><td>Connecting to the Internet</td></tr>"; 
     result.disabled? $("#btn-disconnect").hide():$("#btn-disconnect").show(); 
    } 
} 
$(section).html(html); 
} 
+1

あなたの質問に答えるために、該当するHTMLセクションを含めてください。 – JohnH

+0

HTMLはテーブルとの文字通りのdivには、スクリプトから移入されます(例えばHTML + =「​​たIPAddr​​『+ ipv4.ipaddr +』は」;)----これは、テーブルセクションのを移入ボディー

gjames

答えて

0

私はより良い答えを与えるためにHTMLを必要とするが、この1つは、私はあなたがすでに動作している与えています!私はあなたがjQueryを使い、IPをチェックしたい時を知っていなければならないと思います。私は、本体にonclickメソッドを置いておくことができます。フォーム(私はこれを説明します)。これをチェックアウト:

<script> 

if($("input=[type=submit]").on('click',function(){ 

    var lastip=document.getElementById("ip").value; 
    $.post("yourfile.php", { lastip: lastip }, function(data){ 
    $("#yourdiv").html(data); 
    }); 

}); 

</script> 

yourfile.php 

    function user_ip() { 
     $ip = ''; 
     if (getenv('HTTP_CLIENT_IP')) 
      $ip = getenv('HTTP_CLIENT_IP'); 
     else if(getenv('HTTP_X_FORWARDED_FOR')) 
      $ip = getenv('HTTP_X_FORWARDED_FOR'); 
     else if(getenv('HTTP_X_FORWARDED')) 
      $ip = getenv('HTTP_X_FORWARDED'); 
     else if(getenv('HTTP_FORWARDED_FOR')) 
      $ip = getenv('HTTP_FORWARDED_FOR'); 
     else if(getenv('HTTP_FORWARDED')) 
      $ip = getenv('HTTP_FORWARDED'); 
     else if(getenv('REMOTE_ADDR')) 
      $ip = getenv('REMOTE_ADDR'); 
     else 
      $ip = 'Not Available'; 
     return $ip; 
    } 

$lastip= $_POST['lastip']; 
$nowip= user_ip(); 

if($nowip!=$lastip AND !empty($lastip)){ 

echo 'ip changed!'; 
exit(); 

} 

<div id="yourdiv"> 
    <table> 
     <tr> 
     <td id="ip">IP:<?php echo $nowip;?></td> 
     <td id="dns">DNS:</td> 
     </tr> 
    </table> 
</div> 
0

のようなものについてはどのように:

$(function() { 
    var ipAddress = ipv4.ipaddr 
    setInterval(() => { 
    if (ipAddress !== ipv4.ipaddr) { 
     var ipAddress = ipv4.ipaddr 
     alert('IP Has Changed!') 
    } 
    }, 1000) 
}); 

これは、ページの読み込みにipAddressに現在のIPアドレスを格納し、その後、すべてのは、第二のそれは、現在のipv4.ipaddrと同じだことを確認するためにチェックしますそうでない場合は、新しい値を保存してアラートを出して、チェックの準備が整ったことを再度確認します。

注:これは、ipv4.ipaddrが自動的にどこかに設定されていることを前提としています。

関連する問題