- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 jQuery Mobile 构建一个移动网站,我的一位测试人员在重新加载、深层链接到我使用标准页面加载功能加载到 DOM 中的任何页面或为其添加书签时指出了一个问题内置于 jQuery Mobile 中。我一直在查看文档、论坛帖子、github bug 列表等,寻找解决方案,但我对我可能做错的事情束手无策。我编写了一个非常基本的两页示例来演示我所看到的内容。
首先,我的示例站点根文件夹(即 /index.html
)中有一个 index.html 页面,如下所示:
<!DOCTYPE html>
<html>
<head>
<title>Home Page</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.css" />
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.js"></script>
</head>
<body>
<!-- main page -->
<div data-role="page" data-theme="b" id="main">
<div data-role="header" data-theme="b">
<h1>Home Page</h1>
</div><!-- /header -->
<div data-role="content">
<ul data-role="listview" data-inset="true">
<li><a href="news/">News</a></li>
</ul>
</div><!-- /content -->
</div><!-- /main page -->
</body>
</html>
我在名为“news”的文件夹(即 /news/index.html
)中有第二页,如下所示:
<div data-role="page" data-theme="b" data-add-back-btn="true" id="news">
<div data-role="header" data-theme="b">
<h1>News</h1>
</div><!-- /header -->
<div data-role="content">
TODO: page content goes here
</div><!-- /content -->
</div><!-- /#news page -->
所以,这效果很好。 “主页”加载正常。浏览器地址字段显示 http://m.example.com/
。
我可以单击“新闻”链接将该页面加载到 DOM 中。浏览器地址字段现在显示 http://m.example.com/news/
。这就是我的问题所在。如果您单击浏览器重新加载按钮,/news/index.html
页面会重新加载,但完全缺少主主页上下文,因此没有 jQuery、CSS 或正确的 HTML 文档结构。考虑到 URL 及其文档内容,我希望情况就是如此。但是,当从我的移动网站外部进行深层链接时,我需要指向子页面的链接才能工作。
如果您使用 http://m.example.com/#news/
链接到子页面,则此方法有效,子页面加载正确,并且浏览器地址字段会自动重写为 http://m.example.com/news/
。这样做的问题是,人们需要知道,每当他们为页面 URL 添加书签、推文、电子邮件等时,他们都需要手动编辑 URL。
有没有办法自动将浏览器踢回主页,然后触发子页面的加载,对用户透明,从而正确地重新创建 DOM?我错过了什么?
最佳答案
好的,根据 Kane 的建议,我已经修改了示例代码,现在它似乎可以按我想要的方式工作。
我的示例网站根文件夹(即 /index.html
)中的 index.html 页面现在如下所示:
<!DOCTYPE html>
<html>
<head>
<title>Home Page</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.css" />
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.js"></script>
<script type="text/javascript">
if( window.firstload === undefined ) {
window.firstload = true;
}
</script>
</head>
<body>
<!-- main page -->
<div data-role="page" data-theme="b" id="main">
<div data-role="header" data-theme="b">
<h1>Home Page</h1>
</div><!-- /header -->
<div data-role="content">
<ul data-role="listview" data-inset="true">
<li><a href="news/">News</a></li>
</ul>
</div><!-- /content -->
</div><!-- /main page -->
</body>
</html>
名为“news”的文件夹中的第二页(即 /news/index.html
)现在如下所示:
<script type="text/javascript">
if(window.firstload === undefined) {
for(var i=0, c=0; i < window.location.href.length; i++){
if(window.location.href.charAt(i) == '/') {
c++;
if(c==3) window.location = window.location.href.substr(0,i)
+ '/#'
+ window.location.href.substr(i);
}
}
}
</script>
<div data-role="page" data-theme="b" data-add-back-btn="false" id="news">
<div data-role="header" data-theme="b">
<a href="#main" data-icon="arrow-l" data-iconpos="notext" data-direction="reverse"></a>
<h1>News</h1>
<a href="#main" data-icon="home" data-role="button" data-iconpos="notext" data-transition="fade">Home</a>
</div><!-- /header -->
<div data-role="content">
TODO: page content goes here
</div><!-- /content -->
</div><!-- /#news page -->
现在,在子页面上点击重新加载或深层链接/书签会将访问者弹回主页,然后正确加载到子页面中。在子页面中,重定向生成为 http://m.example.com/#/news/
。
希望这些信息能够帮助其他人节省几个小时敲键盘的时间。
关于jQuery 移动 : Breaks When Reloading/Deep Linking/Bookmarking Pages Added to DOM via AJAX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9106298/
问题: com.itextpdf.kernel.PdfException:Pdf 间接对象属于其他 PDF 文档。将对象复制到当前 pdf 文档。 我想将 PDF 文档与一组已编辑的书签合并,以保持书
我不知道如何删除添加段落时自动生成的书签: Paragraph inicio = document.LastSection.AddParagraph(); inicio.Style = "Headin
我们正在尝试为 iPhone 创建自定义浏览器应用程序。在此应用程序中,我们希望能够允许用户单击标记为“添加到主屏幕”的链接,就像 Safari 浏览器一样,并让我们的自定义浏览器将链接/图标添加到主
是否有一种简单的方法来创建一个链接,同时执行这两种操作? 基本上,我想要一个非常简单的方法来做到这一点。任何建议都是有帮助的。 最佳答案 仅在 IE 中: Bookmark This Site 在 F
虽然这 question和这个 question接近我的要求,我相信可能有一个更以开发人员为中心的解决方案。 所以,那么 - 您用什么来跟踪您每天遇到但当时无法阅读的所有重要信息。我目前使用 del.
这可能不是我问过的最愚蠢的问题,但是我在Stack Overflow中找到了一些帖子,希望保留这些帖子作为引用,并希望将它们添加到我的帐户中。我怎么做? 最佳答案 您可以将它们标记为收藏夹(投票按钮下
我阅读了这份文档:A Guide to Branching with Mercurial,特别是标题为Branching with Bookmarks的部分。 它说: Now you’ve got t
我在一个大的 .chm 文件中有一个巨大的收藏夹列表,我知道收藏夹附加到每个用户 AppData 文件夹中的 hh.dat 文件。我找到了它,当我在记事本中打开 hh.dat 文件时,我看到了书签链接
是否有类似使用 Javascript 或 HTML 或 PHP 的书签按钮,我们可以为网站添加书签?无需手动操作。 喜欢, 当用户点击按钮时。网页应自动被浏览器收藏。 谢谢 最佳答案 不是真的。曾经有
通常,当我在网站上发表评论或回答时,我喜欢留意其他人的其他回复,如果合适,可能会再次回复。有时我会将某个页面加入书签一段时间,有时我最终会重新搜索关键字以再次找到该帖子。我一直认为应该有比我的内存更好
我使用history.js更改浏览器的历史状态。假设我使用这段代码: History.pushState({someState:2}, null, "?someState=2"); 绑定(bind)到
有没有办法对我使用 NERDTree vim 插件看到的书签进行排序? 我觉得这应该很简单,但我不知道该怎么做。我用 vim 编辑了 ~/.NERDTreeBookmarks 并看到在该文件中,书签的
输入 C-x r l 后我得到一个名为 *Bookmark List* 的缓冲区 在这个缓冲区中,我看到: Bookmark file: /tmp/bmkp-temp/19236bkt 如果我打开帮助
我的主页上有几个 iframe,每个 iframe 都是 src=""。我设置了 jquery,这样当我单击按钮时,相关 iframe 的 src 就会填充为 website.com/#title1。
我正在使用 Android 的浏览器书签 ContentProvider 以编程方式创建新书签。书签已创建(我可以通过 ContentProvider 以编程方式检索它)但书签在浏览器书签 View
rel="bookmark" 的目的是什么? 中的属性标签?例如: Click Here 它是否有任何与 SEO 或 SEM 相关的目的? 最佳答案 这没有 SEO 值(value)或目的。我相信
我目前正在开发一个基于 jQuery Mobile 的网络应用程序。我想为首次用户添加一个对话框,该对话框将提供一个按钮,单击该按钮即可将书签保存到网站。该解决方案应该适用于 iOS 和 Androi
尝试使用 chrome.bookmarks.onRemoved来自 Firefox 扩展中的 chrome.bookmarks api: chrome.bookmarks.onRemoved.addL
我要建立一个网站,并想添加一个简单的按钮,以允许访问者将我的页面添加到他们的书签/收藏夹中。有没有办法使用 javascript 来做到这一点?并且有跨浏览器的解决方案? Stack Overflow
如何为使用 AJAX 获取的页面或内容“添加书签”? 看起来如果我们只是将细节添加到“ anchor ”中,然后,使用路由甚至在 PHP 代码或 Ruby on Rails 的 route.rb 中捕
我是一名优秀的程序员,十分优秀!