Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态构造脚本源_Javascript_Jquery_Html - Fatal编程技术网

Javascript 动态构造脚本源

Javascript 动态构造脚本源,javascript,jquery,html,Javascript,Jquery,Html,我正在使用以下代码检索主机ip地址: <script type="text/javascript" src="http://l2.io/ip.js"></script> 我需要从上述url中检索ip地址,并构建另一个url,如下所示: <script type="text/javascript" src="http://<above_ip_address>:8080/MonarchDemo/.."></script> <h

我正在使用以下代码检索主机ip地址:

<script type="text/javascript" src="http://l2.io/ip.js"></script>

我需要从上述url中检索ip地址,并构建另一个url,如下所示:

<script type="text/javascript" src="http://<above_ip_address>:8080/MonarchDemo/.."></script>
<html>
    <body>
        <script type="text/javascript" src="http://l2.io/ip.js"></script>
        <script type="text/javascript" src="http://<ip_address>:8080/MonarchDemo/.."></script>
    </body>
</html>

这两个脚本都存在于html文件的
标记中,如下所示:

<script type="text/javascript" src="http://<above_ip_address>:8080/MonarchDemo/.."></script>
<html>
    <body>
        <script type="text/javascript" src="http://l2.io/ip.js"></script>
        <script type="text/javascript" src="http://<ip_address>:8080/MonarchDemo/.."></script>
    </body>
</html>


运行此html文件时,第一个
脚本
显示正确的IP地址,但我无法在第二个
脚本
中替换该IP地址。请指导。

我不确定我是否完全理解了这个问题,但是与其尝试替换静态脚本标记,为什么不动态创建一个呢

<script type="text/javascript" src="http://l2.io/ip.js?var=ipAddressFound"></script>

var scr = document.createElement("script");

scr.type = "text/javascript";
scr.src = 'http://' + ipAddressFound + ':8080/MonarchDemo/..'; // Use the IP found above
scr.innerHTML = null;
document.body.appendChild(scr);

var scr=document.createElement(“脚本”);
scr.type=“text/javascript”;
scr.src='http://'+ipaddress-found+':8080/monardemo/。;//使用上面的IP地址
scr.innerHTML=null;
文件.正文.附件(scr);
通过脚本创建var的答案如下:

我不确定自己是否完全理解了这个问题,但与其尝试替换静态脚本标记,为什么不动态创建一个呢

<script type="text/javascript" src="http://l2.io/ip.js?var=ipAddressFound"></script>

var scr = document.createElement("script");

scr.type = "text/javascript";
scr.src = 'http://' + ipAddressFound + ':8080/MonarchDemo/..'; // Use the IP found above
scr.innerHTML = null;
document.body.appendChild(scr);

var scr=document.createElement(“脚本”);
scr.type=“text/javascript”;
scr.src='http://'+ipaddress-found+':8080/monardemo/。;//使用上面的IP地址
scr.innerHTML=null;
文件.正文.附件(scr);
通过脚本创建var的答案如下:

您可以使用jQuery加载脚本

$.getScript('http://:8080/demo/。,function(){});

您可以使用jQuery加载脚本

$.getScript('http://:8080/demo/。,function(){});

您是否尝试在执行第一个脚本后在ajax调用中加载它

退房

尝试以下方法:

var getIP = function () {
    var ipadress;
    // code for IP-Adress retrieval here
    return ipadress;
}

// setup the URL
var url = getIP() + ":8080/MonarchDemo/..."
$.getScript( url, function( data, textStatus, jqxhr ) {
    // do want you want to do
    // i.e.
    // console.log( data ); // Data returned
    // console.log( textStatus ); // Success
    // console.log( jqxhr.status ); // 200
    // console.log( "Load was performed." );
});

作为替代方案,您可以在运行时使用javascript(document.write…)插入第二个脚本块。

您是否尝试在执行第一个脚本后在ajax调用中加载它

退房

尝试以下方法:

var getIP = function () {
    var ipadress;
    // code for IP-Adress retrieval here
    return ipadress;
}

// setup the URL
var url = getIP() + ":8080/MonarchDemo/..."
$.getScript( url, function( data, textStatus, jqxhr ) {
    // do want you want to do
    // i.e.
    // console.log( data ); // Data returned
    // console.log( textStatus ); // Success
    // console.log( jqxhr.status ); // 200
    // console.log( "Load was performed." );
});

或者,您可以在运行时使用javascript(document.write…)插入第二个脚本块。

您必须动态生成第二个脚本标记

   var dynamicScript = document.createElement('script');
   var scriptUrl = ":8080/MonarchDemo/..";

   var scripts = document.getElementsByTagName("script");

   //fetch the source and parse out the domain ..

   var domain = scripts[0].getAttribute('src').replace('http://', '').replace('https://', '').split(/[/?#]/)[0];

   dynamicScript.setAttribute('src', "//" + domain + scriptUrl);

   document.body.appendChild(dynamicScript)

您必须动态生成第二个脚本标记

   var dynamicScript = document.createElement('script');
   var scriptUrl = ":8080/MonarchDemo/..";

   var scripts = document.getElementsByTagName("script");

   //fetch the source and parse out the domain ..

   var domain = scripts[0].getAttribute('src').replace('http://', '').replace('https://', '').split(/[/?#]/)[0];

   dynamicScript.setAttribute('src', "//" + domain + scriptUrl);

   document.body.appendChild(dynamicScript)


第一个脚本是动态的吗??你是怎么得到IP地址的不,不是。第一个脚本是静态脚本。第二个脚本是动态的,基于第一个脚本返回的IP地址。在一些js变量中是否有IP地址?我没有。我需要从第一个脚本中检索它,将它保存在一个变量中,然后在第二个脚本中使用它。第一个脚本是动态的吗??你是怎么得到IP地址的不,不是。第一个脚本是静态脚本。第二个脚本是动态的,基于第一个脚本返回的IP地址。在一些js变量中是否有IP地址?我没有。我需要从第一个脚本中检索它,将它保存在变量中,然后在第二个脚本中使用它。感谢您的指导。我同意这一点。但是第一个脚本返回了我的ip地址,如何替换您发布的上述代码中的ip地址?@user182944在上述代码中有一个变量
ipAddressFound
——它将保存第一个脚本返回的值。抱歉,如果我遗漏了一些内容。但是如何将脚本
检索到的ip地址保存在变量中(您将其命名为
ipAddressFound
)?是否可以使用第一个脚本将其保存在变量中?@user182944。该脚本确定用户的IP地址,然后该IP地址存储在名为
ipAddressFound
的变量中,此时您可以使用该IP执行任何操作(在本例中,使用它加载另一个脚本)。感谢您的指导。我同意这一点。但是第一个脚本返回了我的ip地址,如何替换您发布的上述代码中的ip地址?@user182944在上述代码中有一个变量
ipAddressFound
——它将保存第一个脚本返回的值。抱歉,如果我遗漏了一些内容。但是如何将脚本
检索到的ip地址保存在变量中(您将其命名为
ipAddressFound
)?是否可以使用第一个脚本将其保存在变量中?@user182944。该脚本确定用户的IP地址,然后该IP地址存储在名为
ipAddressFound
的变量中,此时您可以使用该IP执行任何操作(在本例中,使用它加载另一个脚本)。