这是我的问题的一个基本例子。
我有两个或更多html页面,看起来像
page1.html
<script src='notify.js'></script>
<h2>Page 1</h2>
<button id='btn' onclick='notify();'>Click</button>
page2.html
<script src='notify.js'></script>
<h2>Page 2</h2>
依旧......
我的js文件是 notify.js
function notify(){
alert("button clicked");
}
在 page1.html 中,有一个button
。当我click
时,button
alert
消息应显示在所有页面中。我怎样才能做到这一点?
在 page1.html 中,alert
消息已成功显示。但是,只要点击alert
(在 page1.html 中),我就需要在所有页面中显示button
条消息。
这就像一个通知过程。我想有人可以帮助我..
答案 0 :(得分:1)
这项任务要求您在网页上设置一些消息。 您可以使用您的数据库来存储这些消息并附加一个读取标志。
所以当点击page1中的一个按钮时,你会触发一个ajax请求,将一条新消息写入这样的数据库表。
$.ajax({url: "/addAlertMessageToDB.php", success: function(result){
alert("message written to DB");
}});
然后在您希望显示警报的每个其他页面中,您应该有一个JS ajax请求,使用setInterval
查找任何新消息
setInterval(function(){
$.ajax({url: "/getLatestMessage.php", success: function(result){
alert(result);
}});
}, 3000);
在上面的示例中,您会看到每3秒触发一次ajax请求,在您的数据库中查找新消息。
并且您的服务器端代码应该查询类似的内容..
select id,message,readFlag from messagesTable where readFlag = false
然后你应该根据数据库中的消息返回你需要提醒的结果..
答案 1 :(得分:1)
如果您在浏览器中打开了多个应用程序选项卡,则无法轻松与他们通信。它没有考虑到这个目的而设计,因为浏览器中的标签是在JavaScript发明之后出现的。
可能的解决方案是:
答案 2 :(得分:0)
有不同的方法:
选择最适合您的选项。 Web套接字,长轮询,服务器发送事件和永久框架之间的区别 - 单击here以获取详细信息。
答案 3 :(得分:-1)
正如您所说的“通知”,这实际上就像是在同一个域或跨域的页面之间进行消息传递,
如果是这样: - 那么你必须考虑实时消息,如XMPP,websockets,套接字等,这个过程将是
每个页面上有1个列表器和1个发布者
listner将听取通知并作出反应 发布者将广播通知(您的按钮)