2014-10-09 3 views
0

Я использую следующий код для извлечения IP адрес хоста:Построив источник сценария динамически

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

Мне нужно, чтобы получить IP-адрес из приведенного выше URL и построить другой URL-то вроде этого:

<script type="text/javascript" src="http://<above_ip_address>:8080/MonarchDemo/.."></script> 

Оба сценарии присутствуют внутри <body> тега HTML-файла, как это:

<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 отображает правильный IP-адрес, но я не могу заменить этот IP-адрес во втором script. Пожалуйста, направляйте.

+0

является первым скриптом динамического ?? как вы получаете ipaddres –

+0

Нет, его нет. Первый скрипт является статическим. Второй скрипт динамический, основанный на IP-адресе, возвращенном первым скриптом – user182944

+0

. У вас есть ipaddress в некоторой переменной js. –

ответ

2

Я не уверен, что я точно понимаю вопрос, но вместо того, чтобы заменить статический тег сценария, почему бы не создать его динамически?

<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); 

Кредит на ответ для создания вар через скрипт: Get client IP address via third party web service

+0

Спасибо за руководство. согласитесь с этим. Но первый скрипт возвращает мне ip-адрес, как заменить это в вышеприведенном коде, который вы опубликовали? – user182944

+0

@ user182944 В приведенном выше коде есть переменная 'ipAddressFound' - это будет содержать значение, возвращаемое первым скриптом. Извините, если я что-то упустил. –

+0

, но как сохранить IP-адрес, полученный скриптом '' в variavle, который вы назвали 'ipAddressFound '? – user182944

1

Вы можете использовать JQuery, чтобы загрузить ваш скрипт take a look here

$.getScript('http://<ip_address>:8080/MonarchDemo/..', function(){}); 
1

вы пытались загрузить его в пределах ajax после выполнения вашего первого скрипта?

выписка http://api.jquery.com/jquery.getscript/

попробовать что-то вроде:

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."); 
}); 

В качестве альтернативы можно просто instert второго блока сценария с JavaScript (document.write ...) на время выполнения.

1

вам придется динамически генерировать второй тег сценария ..

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) 
Смежные вопросы