2017-09-25 99 views
0

導入的變量我搞砸了socket.io,遇到了一段時間我無法解決的問題。我有一個HTML頁面,導入了2個不同的腳本。其中之一是socket.io導入;我怎樣才能訪問另一個<script>標籤在JS

<script src="node_modules/socket.io-client/dist/socket.io.js"> 
    var socket; 
    socket = io.connect('http://localhost:8080'); 
</script> 

另一個是爲遊戲做東西的腳本。我想調用在這個腳本中的第一個導入腳本中聲明的變量「套接字」(上圖)。而且僅供參考,它就像這樣的函數。

<script type="text/javascript"> 
    function myFunc(data) { 
     socket.emit('key',data); 
    } 
</script> 

現在,如果我嘗試像這樣運行它,它說「套接字」變量沒有定義。如果我嘗試在socket.io腳本中使用遊戲腳本,它也不起作用。而且我不知道是否有任何方法可以在遊戲腳本中導入socket.io腳本,所以我該怎麼做?

+0

我不知道,如果瀏覽器將執行的第一個腳本,因爲腳本標籤有一個'src'屬性。請參見[如果腳本元素具有指定的src屬性,則不應在其標記中嵌入腳本。](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script) – James

+0

讓我們嘗試一個函數myFunc(套接字,數據)作爲參數來查看,不知道結果:(。 – 2017-09-25 20:50:30

回答

3

你不能有一個腳本標籤既使用源代碼又使用其中的東西。把你的socket.io源腳本放在它自己的腳本標記中,它應該可以工作。

編輯:就像這樣:

<script src="node_modules/socket.io-client/dist/socket.io.js"></script> 
<script> 
    var socket; 
    socket = io.connect('http://localhost:8080'); 
</script> 
+0

它不在相同的腳本標記。頁面中包含2個不同的腳本標記 –

+0

在第一個腳本中,在標籤中都有一個'src'屬性和文本,這是不行的,你必須把它們放在單獨的腳本標籤中,就像我上面顯示的 –

+0

哦謝謝,我不知道我爲什麼這麼做。 –