我正在编写一个C#.Net MVC移动网络应用程序,其中包含使用jQuery Mobile Themeroller构建的自定义主题。主题工作正常,直到我点击F5,单击浏览器刷新按钮,或执行任何其他刷新操作。刷新后,页面将丢失自定义主题并返回默认的jQuery Mobile css。我只能刷新主页上的网络应用程序,而不会失去主题。
我read this short post,但我不确定它是一样的。我可以看到这将在ajax调用完成后如何修复样式,但是刷新问题呢?我的意思是,如果我在启用JQM的页面上点击“刷新”或F5,它会丢失所有自定义主题(来自themeroller)。
这可能是因为JQM将base
元素添加到第一页的方式吗?我不知道如何确认这一点。我不应该在每个文档就绪事件上调用$('#mypage').trigger('create');
,我应该吗?
我感谢任何回复。我想发布一个jsfiddle,但在使用自定义主题时很难。
更新
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css" />
<link rel="stylesheet" href="Content/stylesheets/mobilere.min.css" />
<link rel="stylesheet" href="Content/stylesheets/main.css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js"></script>
这是head
块中的所有内容 - mobilere.min.css是我的样本样式表。
我目前没有dom ready事件设置,因为我想避免在每个页面上触发刷新。
答案 0 :(得分:0)
您需要在网站每个页面的<head>
部分中找到您在页面<head>
部分发布的代码,以便用户刷新任何页面上的浏览器它将是可访问的。在正常浏览网站时,这不会产生太多开销,因为jQuery Mobile只会拉入页面上的第一个data-role="page"
元素并将其添加到当前DOM中。
您应该使用样式表的绝对路径,以便无论页面的基本网址是什么,都可以找到它们。
在网站注释中,$('#mypage').trigger('create');
用于向页面窗口小部件添加适当的类和HTML结构,而不是更改样式表。