Javascript:通过简单的函数从其他主页访问数据(没有Ajax,没有jQuery)

Javascript: access data from other homepage with a simple function (no Ajax, no jQuery)

我想使用一个简单的函数访问return由这个link编辑的数据:https://geoapi123.appspot.com/

如果您单击 link,return 看起来像:

function geoip_country_code(){return"UK"}
function geoip_country_name(){return"United Kingdom"}
function geoip_city(){return"London"}
...

特别是,我正在寻找 geoip_city。我不想使用 AJAX 或 jQuery。 我需要一个简单的函数,它不需要脚本标签或头部的任何引用。接收到的数据需要存储在一个变量中,完全独立于主页或主页上的任何事件。该函数不能被任何 onload 或 click 事件或主页发生的任何其他事件调用。

这是一个带有 head 脚本标签的工作示例(不是我想要的):

<head>
<script language="JavaScript" src="https://geoapi123.appspot.com/"></script>
</head>

<body>
<script language="JavaScript">
var city = geoip_city();
alert(city);
</script>
</body>

这是我想要的想法

function getLocation() {
    ???                            //access homepage somehow here
    var city = geoip_city();       //get result
    alert(city);                   //alert result
};
getLocation();                     //call function

这是我目前最近的尝试(不工作,return 是“0”):

function accessLocation() {
    var xmlhttp = new XMLHttpRequest();

    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == XMLHttpRequest.DONE) {
           alert(xmlhttp.status);
        }
    };

    xmlhttp.open("GET", "https://geoapi123.appspot.com", true);
    xmlhttp.send();
};
accessLocation();

谢谢指教!

您可以通过代码添加脚本元素并从 'geoapi':

加载源

    function clickHandler() {
      var city = geoip_city();
      alert(city);
    }

    function ready() {

      var element = document.getElementById('cityFinder');
      element.addEventListener('click', clickHandler, false);
    }

    function init() {
      var script = document.createElement('script');
      script.onload = function() {
        ready();
      };
      script.src = "https://geoapi123.appspot.com/";
      document.getElementsByTagName('head')[0].appendChild(script);
    }
<body onload="init();">

  

  <input type="button" id="cityFinder" value="Where am I?"></input>

</body>