2017-12-28 6 views
1

현재 DNS 및 IP 주소와 같은 정보를 표시하는 div가 있습니다.변수가 변경된 경우 트리거 이벤트

IP 주소 변수가 변경되면 경고를 표시하려고하므로 div와 변수 자체의 변경 사항을 수신하기 위해 많은 노력을 기울이지 않았습니다. 변수가 변경되면 함수를 경고하거나 트리거하는 확실한 방법이 있습니까?

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

그리고 일반적으로 IP 요지를 표시하는 데 사용되는 스크립트를

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은 테이블에 그대로 단지 사업부, 그것은 스크립트에서 채워됩니다 (예를 들어 HTML + = " IPADDR"+ ipv4.ipaddr + "는";) ----이 테이블 섹션을 채 웁니다 본체

gjames

답변

0

내가 더 나은 대답하지만 난 당신이 이미 작동 제공하고이 하나를 제공하기 위해 HTML을 필요로한다! 나는 당신이 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이 자동으로 어딘가에 있다고 가정합니다.

관련 문제