2015-04-18 4 views
-1

Мне нужно получить доступ к cellid в index.html из файла script.js java script, cellid определен в файле signal.js. В настоящее время я использую функцию требуется в index.html, чтобы получить объект сигнала, но это не работаетКак вызвать функцию в одном javascript из другого javascript

**index.html** 
 

 
<!DOCTYPE html> 
 
<html> 
 
    <head> 
 
    <script type="text/javascript" charset="utf-8" src="signal.js"></script> 
 
    <script type="text/javascript" charset="utf-8"> 
 
    var signal = require ("signal"); 
 
    alert("CellID : "+ signal.cellID); 
 
    var CellID = signal.cellID; 
 
    </script> 
 
    </head> 
 
</html>

signal.js

var exec = require('cordova/exec'), 
 
    cordova = require('cordova'); 
 

 
var Signal = function() { 
 
    this.imei = null; 
 
    this.operator = null; 
 
    this.cellID = null; 
 
    this.lac = null; 
 
    this.neighbors = {}; 
 
    // Create new event handlers on the window (returns a channel instance) 
 
    this.channels = { 
 
     watchingnetwork: cordova.addWindowEventHandler("watchingnetwork") 
 
    }; 
 
    for (var key in this.channels) { 
 
     this.channels[key].onHasSubscribersChange = Signal.onHasSubscribersChange; 
 
    } 
 

 
}; 
 

 
Signal.onHasSubscribersChange = function() { 
 
    exec(signal.status, signal.error, "Signal", "getSignalInfo", []); 
 
} 
 

 
/** 
 
* Callback for signal initiated 
 
* 
 
* @param {Object} info   keys: imei, isPlugged 
 
*/ 
 
Signal.prototype.status = function(info) { 
 
    cordova.fireWindowEvent("watchingnetwork", info); 
 
    if (info) { 
 
     if (signal.imei !== info.imei || signal.operator !== info.operator) { 
 

 
      if (info.imei == null && signal.imei != null) { 
 
       return; // special case where callback is called because we stopped listening to the native side. 
 
      } 
 

 
      // Something changed. Fire watching network event 
 

 
      signal.imei = info.imei; 
 
      signal.operator = info.operator; 
 
      signal.cellID = info.cellID; 
 
      signal.lac = info.lac; 
 
      signal.neighbors = info.neighbors; 
 
     } 
 
    } 
 
}; 
 

 
/** 
 
* Error callback for signal initiated 
 
*/ 
 
Signal.prototype.error = function(e) { 
 
    console.log("Error initializing advanced network plugin: " + e); 
 
}; 
 

 
var signal = new Signal(); 
 

 
module.exports = signal;

как я могу это сделать.?

+0

Существует не хватает информации здесь, чтобы ответить на этот вопрос – JoshWillik

+0

Где CellID и что файл вы отправили? Сценарий, который вы опубликовали, выглядит как файл Signal. Не могли бы вы прояснить? –

+0

Это действительно зависит от того, как организован ваш исходный код. Вы можете просто потребовать signal.js и получить 'cellID' непосредственно из назначенной переменной, так как signal.js экспортирует экземпляр Signal, который содержит cellID. То есть, если ваше приложение находится в той же среде, что и ваш файл signal.js, то есть серверная сторона nodejs – fudanchii

ответ

2

Просто signal.js быть первым,

<script src="signal.js"></script> 
<script> 
    // Your code here 
</script> 

Тогда второй <script> может использовать что-либо определенное в signal.js.

+0

I aadded , но я новичок в java-скрипте. Я не знаю, как получить cellid в другом скрипте java. –

+0

@Vishwanath Точно так же вы получаете доступ к нему в 'signal.js'. Подумайте об этом как о единственном большом '

0

на самом деле, если вы хотите использовать функцию Signal:

// signal.js 
var Signal = function() { 

    // .... 
}; 

// use function Signal 
Signal(); 

, если вы хотите использовать сигнал(), вы должны оставаться в рамках с ним.

так ...

<script src="signal.js"></script> 
<script> 
    // some code ... 
</script> 

приведенный выше код означают, что поместить код в signal.js файл и некоторый код в одну сферу. когда вы включаете файл JS: signal.js, точно так же как:

<script> 
var Signal = function() { 

    // .... 
}; 

// some code ... 
Signal() 
<script> 

включает код в одну сферу ~