Javascript 动态构造脚本源
我正在使用以下代码检索主机ip地址: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
<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执行任何操作(在本例中,使用它加载另一个脚本)。