问题标签 [singlepage]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
google-analytics - 使用 google 分析处理带有哈希 # 的 url
我正在使用 javascript 客户端 mvc(在本例中为 angular.js)开发 js 单页 Web 应用程序
我在网站上添加了谷歌分析,但从我目前所看到的(至少是实时的)谷歌没有考虑到哈希后的 uri 部分
那就是我有一个类似的网址,mydomain.com.ar/#/ideas/1
但对于谷歌分析来说,它看起来就像mydomain.com.ar/
任何想法?
javascript - 动态 div 和 scrollTop
我有一个单页网站:
http://chiaroscuro.telegraphbranding.com/
每个部分都根据用户的窗口动态调整大小。我试图弄清楚当点击链接时如何让 jQuery 平滑滚动功能滚动到每个部分的顶部。它对于第一部分,资金领域非常有用,我只使用了一个简单的 offset().top,但其他部分不起作用,因为它们不知道滚动多远,因为窗口大小总是不同的。
我一直试图让 offset() 或 position() 工作,但没有骰子。我很感激任何建议。
这是我的 jQuery:
`
`
javascript - 支持历史记录的单页 Web 应用程序中的表单字段:缓存用户输入
在我看来,一个好的单页 Web 应用程序应该尽可能接近(并且明智)传统的 Web 应用程序,后者会在每个用户操作上(重新)加载整个页面。特别是,单页 Web 应用程序应支持浏览器历史记录,包括后退和前进按钮。
大多数单页 Web 应用程序的框架都支持浏览器历史记录。但它们似乎没有模仿一件关键的事情:当我在传统 Web 应用程序的第 1 页并填写表单字段时,导航到应用程序的第 2 页,然后单击返回按钮,浏览器将恢复我的输入。
对于单页 Web 应用程序,通常会发生以下两种情况之一:第 1 页的表单字段仍然是第 2 页上的 DOM(但隐藏)的一部分(或至少是 Javascript 数据结构的一部分),因此导航返回后,应用程序可能会再次向我显示填写的表单字段,或者每次我访问第 1 页时都会重新创建表单字段(通过直接导航或按返回按钮)。在后一种情况下,我以前的输入不会恢复。
显然前者更好。但是即使这个解决方案也不是完美的:在传统的 Web 应用程序中,每个历史记录条目都有自己的表单字段缓存值,即使历史记录多次包含前面提到的第 1 页。单页应用程序不会在每个应用程序内导航中重新创建表单字段,但是,它只为每个表单字段缓存一个值。
解决这个问题并使单页 Web 应用程序更好的一个想法是将表单字段的值存储在HTML5 历史接口的 pushState 和 replaceState 方法的data属性中,以便将它们与其他历史信息一起存储。当然,当前历史条目必须在用户导航离开之前保持更新,因此必须在所有使用 replaceState 更新当前历史条目的表单控件上使用onchange事件处理程序。
现在我的问题是对于上述问题是否有更好的解决方案,以及是否有任何单页 Web 应用程序框架/库来处理它。
javascript - 如何在单页应用程序上使用 AMD 来仅加载某些依赖项
据我了解,使用 AMD 管理加载的依赖项的一个好处是,但是在使用 require.js 的单页应用程序中,所有依赖项都将被加载。
例如使用主干或类似的东西,假设我有以下文件
main.js 需要 router.js
router.js 需要 view_a.js 和 view_b.js
router.js 呈现视图
现在让我们说我去example.com/#view_b
哪个只需要代码view_b.js
但不使用view_a.js
. 无论如何只view_b.js
使用 require.js 或类似的东西加载或优先加载?
css - 单页 wordpress 模板。如何在css中创建新部分
我只是好奇这是如何完成的,因为最终我想开发自己的单页 wordpress 主题。
我已经看到所有主题都在一个页面上,但只是向下滚动,当您添加一个新的菜单项(或页面)时,它会在页面中添加一个新的 css 部分。在此模板演示中可以看到一个示例:Wordpress In-Motion 主题如您所见,单击菜单链接,它会将您带到该部分。在 css 中添加 #news 或 #about-us
有人可以向我解释在设计 wordpress 主题时这是如何将其创建为功能的吗?山姆
knockout.js - 识别绑定
我正在尝试为 John Papa 的 Code Camper 项目添加一个新视图。我被困在简单的哈希导航绑定上。我的问题是如何找到填充 {href: favorites} 的代码?它使用井号标签 #/favorites 填充,但我找不到发生这种情况的位置。有超过 30 个 JS 文件,搜索“收藏夹”会产生太多结果。我已经尝试在我发现“收藏夹”的任何地方添加我的 newview 代码,但没有运气。我得到错误:
消息:ReferenceError:未定义新视图;绑定值:attr: {href: newview}
那么,我怎样才能确定在下面的代码中填充了 {href: favorites} 的内容?我确实知道淘汰赛绑定是如何工作的,只是在项目中找不到代码。除了 John Papa 的 Code Camper 项目和这个特定的代码之外,一般来说,有没有什么工具可以知道绑定在淘汰赛 js 中的位置?
编辑:对于这种情况,我找到了绑定。我认为它不起作用,因为网页卡在缓存中。尽管如此,如果有一种工具或方法可以识别哪些代码绑定到我想知道的属性。
jquery-mobile - 何时在使用 marionette 和 jquery mobile 构建的 Web 应用程序中调用 trigger('create')
我正在使用 Marionette 和 jQuery Mobile 构建单页应用程序。页面的各个部分由填充了来自 Web SQL 的数据的模板组成。
我在 JQM 的文档中读到,应该使用强制 JQM 增强动态创建的页面 trigger('create')。这些示例表明,应该在注入新标记后立即调用触发器,如下所示:
在我的例子中,标记是由 Marionette 注入的(即集合视图循环通过其关联的模型,每次都应用适当的模板。所以——这就是问题——我应该在哪个事件上绑定 trigger('create')使动态标记看起来增强?
javascript - html/js:单页应用程序中是否存在“页面加载”事件?
我正在构建一个单页应用程序,它(预)通过 ajax 加载不同页面的内容。当用户导航时,应用程序将特定标签内的旧内容替换为新内容(ajax 数据)。该新内容可以是例如包含文本和图像的文章。
我的问题是:在替换内容并加载新内容的每个外部资源后,是否有触发事件?就像“准备好”刷新 DOM 一样?
jquery - 动态单页 Drupal 站点
我正在寻找一些关于如何实施以下内容的建议。在这一点上,我根本没有与任何一种解决方案(模块)结婚。也就是说,我几乎肯定会使用Views / Chaos Tools
and StateHandler / History.js
。我愿意使用Panels
or Blocks
,事实上我真的很想使用 Panels。任何帮助将不胜感激!
我需要创建一个只有一页的站点,并将节点内容动态(使用AJAX
)加载到视图上方的页面中。内容也必须可以从节点访问,URLs (node/1)
在视口中加载带有节点内容“前端和中心”的完整站点页面。
如果我能澄清一下,请告诉我,并在此先感谢!
php - 如何抓取 jquery 驱动的网站?
我正在构建一个单页 javascript 驱动的网站。我在主页上使用 php 作为 json 对象回显了所有页面的所有必要数据。然后我使用为每个页面制作的自定义插件初始化页面,它使用相关的 json 数据动态构建 dom,我将这些数据传递给插件,所以我没有任何 ajax 请求。我网站上的链接采用以下格式!#about、!#home 等...目前插件的 init 方法在hashchange上调用。我应该怎么做才能使这些页面可以被谷歌机器人抓取,以及如何为每个页面制作不同的标题和描述元标记?
我尝试了在谷歌文档和许多其他网站上找到的各种东西。我已将链接从 #mylink 更改为 #!mylink ,因此谷歌应该将其解释为 get _escape_fragment_ 变量,然后我尝试添加这段 php 代码:
其中 project.php 是一个包含相关信息的 html 快照,我希望对其进行抓取。基本上只是核心信息。但据我所知,没有任何反应...... :( 毕竟有没有办法在没有 AJAX 请求的情况下实现这一点?