2017-03-25 9 views
-5

私は次のような2つのWebページを持っています。一つのページのボタンをクリックすると、両方のページに警告ボックスを表示する必要があります。あなたは2つのページを所有している場合どのように私はかつて一度に2ページのボタンをクリック

app.js

var express = require('express'); 
var app = express(); 
var serv = require('http').Server(app); 

app.get('/',function(req, res){ 

     res.sendFile(__dirname + '/client/index.html'); 
}); 
app.use('/client',express.static(__dirname + '/client')); 

serv.listen(2000); 
console.log("server started"); 

var SOCKET_LIST ={}; 

var io = require("socket.io")(serv,{}); 
io.sockets.on("connection", function(socket){ 


    socket.id = Math.random(); 
    SOCKET_LIST[socket.id] = socket; 
    console.log("socket connection"); 

    socket.on('disconnect',function(){ 
     delete SOCKET_LIST[socket.id]; 
     console.log("Disconnected"); 
    }); 

    socket.on("button",function myFunction() { 
    alert("I am an alert box!"); 
}); 

    socket.emit('servermsg', $("button").click(function() { 
       alert("I am an alert box!"); 
    })); 



}); 

setInterval(function(){ 
    for(var i in SOCKET_LIST){ 
     var socket = SOCKET_LIST[i]; 
    } 
}, 1000/25); 

index.htmlを(クライアント)

<!DOCTYPE html> 
<html> 
<body> 

<script src="https://cdn.socket.io/socket.io-1.4.5.js"></script> 
<script> 
var socket =io(); 



socket.emit('button',function myFunction() { 
    alert("I am an alert box!"); 
}); 

socket.on('servermsg', function(data){ 
console.log(data.msg); 
}); 
</script> 



<p>Click the button to display an alert box:</p> 

<button onclick="myFunction()">Try it</button> 


</script> 

</body> 
</html> 
+1

あなたが解決しようとしている根本的な問題は何ですか? –

+0

それは*でも*意味しますか?これら2つのページはどう関連していますか?ここで実際に何を達成しようとしていますか? – David

+0

@ David私はそれらの2ページを接続する方法を知っていないので、解決策を模索しています。 – vamshi

答えて

0

私はちょうどMartinWebbの答えを試しました。私はあなたにスタートを与えるかもしれないことを願っています。

ページ#1:

<button type="button" onclick="hello()">Hello</button> 

<script type="text/javascript"> 
    // window.localStorage.removeItem("text"); 
    function hello() { 
     window.localStorage.setItem("text","Hello there.."); 
    } 
</script> 

ページ#2:

<p id="show"></p> 

<script type="text/javascript"> 
    window.addEventListener('storage', storage_event_listener, false); 

    function storage_event_listener(evt) 
    { 
     document.getElementById("show").innerText = evt.newValue; 
     // console.log(evt); 
    } 
</script> 

あなたは私が私のページ#で行をコメントしている見ることができます。1.ストレージ・イベントが解雇された」からですたとえば、項目を既存の値に設定したり、名前付きキーがないときにclear()を呼び出すと、storageイベント(たとえば、setItem()、removeItem()保管場所で実際に何も変わっていないので、発砲しない」

私はイベントを呼び出すために私の記憶アイテムをクリアする必要がありました。

1

2つの異なるWebページに二つのボタンをクリックすることができます。つまり、両者は同じドメインwww.adomain.comに座っています。

ローカルストレージを使用してこれを行うことができます。

最初のページのクリックイベントでは、localstorageに値キーを格納します。 2ページ目で

https://developer.mozilla.org/en/docs/Web/API/Window/localStorage

のlocalStorageの変更を「聞く」ためにイベントリスナーを追加します。

http://html5demos.com/storage-events

そのイベントが発生するが、あなたのボタンをクリックし

https://www.w3schools.com/jsref/met_html_click.asp

またはオプション2

使用https://www.pubnub.com

これは、IOソケットMSGサービスの低下です。あなたは無料のアカウントを取得して、あるページからメッセージを送信し、別のページでそれを聞いて反応することができます。あなたのケースでは、ボタンをクリックしてください。

+0

またはあなたが本当にスムーズにpubnubリアルタイムAPIを追加したい場合は、チャネルを作成し、2番目のページで聞いて、メッセージを取得し、ボタンをクリックします。 www.pubnub.com – MartinWebb

+0

これは素晴らしい解決策です。 –

関連する問題