只有在浏览器中第一次访问网站时,我想在网站的主页上显示警告消息。如果打开新选项卡并再次访问站点,则不应显示警报消息。但是,如果我关闭浏览器并再次打开它,然后访问此网站,则应显示警报消息。我应该如何在MVC项目中实现这一点? 如果我将使用“会话”,我想警报消息将显示在我访问网站的每个标签中。如果我使用“LocalStorage”,即使关闭浏览器并再次打开,警告消息也不会显示。请告诉我实现这个或任何其他选择的最佳方式。首次在浏览器中首次打开时,在MVC主页上显示警告消息
0
A
回答
0
替代方法是HTML5 SessionStorage API。只有选项卡处于打开状态时,SessionStorage变量才会存在,与LocalStorage相反,LocalStorage一直存在,直到在浏览器上手动清除为止,即没有到期日期。
你可以找到更多的细节here
的sessionStorage的属性,可以访问会话存储对象当前原点。 sessionStorage与Window.localStorage类似,唯一的区别是当存储在localStorage中的数据没有设置过期时,存储在sessionStorage中的数据在页面会话结束时被清除。只要浏览器处于打开状态并且在页面重新加载和恢复时存在,页面会话就会持续。在新选项卡或窗口中打开页面将导致启动新会话,这与会话cookie的工作方式不同。
+0
只要浏览器处于打开状态,并且不仅仅是一个选项卡,我就希望变量存在。 – Dash
0
你可以试试这个,你的_Layout.cshtml创建一个隐藏字段:
<input id="inputAnnounce" type="hidden" [email protected] name="Announcement"/>
然后在你的Javascript部分,您可以检查该值,如果它是真的还是假的:
$(document).ready(function() {
if (inputAnnounce == "True") {
//Do your alert logic here
}
});
然后在您的Model实体上,在您的UserSession模型上添加其他属性,这在我的情况下是entUserSession:
public static bool blIsAnnounce
{
get
{
return _blIsAnnounce;
}
set { _blIsAnnounce = value; }
}
确保当有人关闭对话框,请致电您的控制器上的功能,使值false,所以它不会再次出现,除非他们注销和登录:
public ActionResult fncCloseAnnouncement()
{
Model.entUserSession.blIsAnnounce = false;
return null;
}
相关问题
- 1. 图像源,但在浏览器中首次没有显示
- 2. 首次登录时打开页面
- 3. WAMP:如何在浏览器中显示警告消息?
- 4. 每次首次缓慢显示PDF时
- 5. 安装后首次启动时显示消息
- 6. 在浏览器后退按钮上显示警告消息,但不显示刷新时的警报
- 7. 在浏览器中显示xml没有警告信息
- 8. javascript代码在15次击键后显示警告消息
- 9. 设为首页在Android浏览器
- 10. Xcode:如何使PickerView在某行首次显示时开始
- 11. 如何在首次启动时仅显示一次UIPageViewController
- 12. DIV视频仅在第一次加载首页时显示
- 13. refreshTable上首次
- 14. 如何仅在首次启动应用程序时显示消息?
- 15. 在网页上首次调用Url.Action
- 16. 如何在Django中首次显示所需的字段错误消息
- 17. 每次点击时在单独的浏览器中打开webview?
- 18. 使用pageregisterstartupscript刷新浏览器时显示的警报消息
- 19. 加载特里首次应用打开
- 20. 首次
- 21. MVC页面内容在同一浏览器窗口中显示两次
- 22. 树首次显示时如何显示选中的jstree节点?
- 23. 为首次在Grails中首次加载页面而明确创建会话
- 24. Android - 首次显示ListView时,首选ListView项目有时会被选中
- 25. 如何在ios上首次启动时显示视图控制器
- 26. 如何仅在首次打开应用时启动活动一次?
- 27. 在首页上显示感言
- 28. 重用首选Web浏览器页面
- 29. 仅在浏览器开启时读取一次cookie 1次
- 30. 的jqGrid columnChooser不显示首次
你应该使用静态标志类型全局变量并将其设置为第一次,并在警报显示更改标志值后进行检查 –