1

我是 javascript 和一般编程的新手。我有一个谷歌网站,我想记录从该网站提交表单的用户的 ip。我看到,谷歌搜索可以使用外部服务来获取 IP 地址,但我试图弄清楚如何在我的站点中设置一个脚本(我想是一个 javascript)来完成任务。

特别是,我需要的是以下内容:

1)站点内的脚本必须获取IP地址。我在您的论坛中找到了以下代码,应该可以完成这项工作。

<script type="application/javascript">
  function getip(json){
    alert(json); // alerts the ip address
  }


</script>

<script type="application/javascript" 
       src="http://www.anotherdomain.com/file.php? callback=getip"> 
</script>

如何从 javascript 函数中调用它?

2)在获得IP地址后,我想用它填写表格的文本区域,并在提交时将其发送到谷歌电子表格。如何获取 ip 输出并使用 javascript 代码将其发送到文本框?

4

2 回答 2

0
   var ip ; 
   $.ajax({
    url: '//freegeoip.net/json/',
    type: 'POST',
    dataType: 'jsonp',
    success: function(location) {
        ip = location.ip;
        $("textarea").val(ip);
    }
});
于 2014-09-03T15:39:00.613 回答
0

您绝对正确,您只能通过使用外部资源来获取用户 IP 地址。让我们使用ipify.org 来做吧!

因此,请在此处查看文档。在那里你会发现你需要两件事。

  1. 在您的 HTML 正文加载后设置<script>如下;

<script type="application/javascript" src="https://api.ipify.org?format=jsonp&callback=getIP" defer></script>

请注意,该<script>标签将联系 ipify.com 并返回用户 IP 地址,然后将其作为 JSONP 传递给我们称为 getIP() 的 JavaScript 函数。

  1. 设置下面的函数,这是我写的设置 a 的值的函数<textarea>a <div>;

         function getIP(json){
            document.getElementById("ipaddress").value = json.ip;
         }

这是<div>

<div style="display: none;">
    <label>Ip address is:</label>
    <textarea id="ipaddress"></textarea>
</div>

请注意,我将 设置<style>为;display: none;id="ipaddress"对于<textarea>。这会将其设置<div>为不显示给您的用户,并且可以更轻松地将我们的 IP 地址传递给我们的服务器/数据库。像这样:

function submit(){
        let someValue = document.getElementById('someValue').value;
        let someotherValue = document.getElementById('someotherValue').value;
        let ip = document.getElementById('ipaddress').value;
       var formData = {
         someValue,someotherValue,ip 
       }
       google.script.run.serverSideFunction(formData)
       }

于 2022-02-12T06:29:58.187 回答