问题标签 [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.

0 投票
2 回答
2789 浏览

google-analytics - 使用 google 分析处理带有哈希 # 的 url

我正在使用 javascript 客户端 mvc(在本例中为 angular.js)开发 js 单页 Web 应用程序

我在网站上添加了谷歌分析,但从我目前所看到的(至少是实时的)谷歌没有考虑到哈希后的 uri 部分

那就是我有一个类似的网址,mydomain.com.ar/#/ideas/1但对于谷歌分析来说,它看起来就像mydomain.com.ar/

任何想法?

0 投票
1 回答
3372 浏览

javascript - 动态 div 和 scrollTop

我有一个单页网站:

http://chiaroscuro.telegraphbranding.com/

每个部分都根据用户的窗口动态调整大小。我试图弄清楚当点击链接时如何让 jQuery 平滑滚动功能滚动到每个部分的顶部。它对于第一部分,资金领域非常有用,我只使用了一个简单的 offset().top,但其他部分不起作用,因为它们不知道滚动多远,因为窗口大小总是不同的。

我一直试图让 offset() 或 position() 工作,但没有骰子。我很感激任何建议。

这是我的 jQuery:

`

`

0 投票
0 回答
965 浏览

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 应用程序框架/库来处理它。

0 投票
1 回答
371 浏览

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 或类似的东西加载或优先加载?

0 投票
3 回答
2854 浏览

css - 单页 wordpress 模板。如何在css中创建新部分

我只是好奇这是如何完成的,因为最终我想开发自己的单页 wordpress 主题。

我已经看到所有主题都在一个页面上,但只是向下滚动,当您添加一个新的菜单项(或页面)时,它会在页面中添加一个新的 css 部分。在此模板演示中可以看到一个示例:Wordpress In-Motion 主题如您所见,单击菜单链接,它会将您带到该部分。在 css 中添加 #news 或 #about-us

有人可以向我解释在设计 wordpress 主题时这是如何将其创建为功能的吗?山姆

0 投票
1 回答
138 浏览

knockout.js - 识别绑定

我正在尝试为 John Papa 的 Code Camper 项目添加一个新视图。我被困在简单的哈希导航绑定上。我的问题是如何找到填充 {href: favorites} 的代码?它使用井号标签 #/favorites 填充,但我找不到发生这种情况的位置。有超过 30 个 JS 文件,搜索“收藏夹”会产生太多结果。我已经尝试在我发现“收藏夹”的任何地方添加我的 newview 代码,但没有运气。我得到错误:

消息:ReferenceError:未定义新视图;绑定值:attr: {href: newview}

那么,我怎样才能确定在下面的代码中填充了 {href: favorites} 的内容?我确实知道淘汰赛绑定是如何工作的,只是在项目中找不到代码。除了 John Papa 的 Code Camper 项目和这个特定的代码之外,一般来说,有没有什么工具可以知道绑定在淘汰赛 js 中的位置?

编辑:对于这种情况,我找到了绑定。我认为它不起作用,因为网页卡在缓存中。尽管如此,如果有一种工具或方法可以识别哪些代码绑定到我想知道的属性。

0 投票
1 回答
260 浏览

jquery-mobile - 何时在使用 marionette 和 jquery mobile 构建的 Web 应用程序中调用 trigger('create')

我正在使用 Marionette 和 jQuery Mobile 构建单页应用程序。页面的各个部分由填充了来自 Web SQL 的数据的模板组成。

我在 JQM 的文档中读到,应该使用强制 JQM 增强动态创建的页面 trigger('create')。这些示例表明,应该在注入新标记后立即调用触发器,如下所示:

在我的例子中,标记是由 Marionette 注入的(即集合视图循环通过其关联的模型,每次都应用适当的模板。所以——这就是问题——我应该在哪个事件上绑定 trigger('create')使动态标记看起来增强?

0 投票
1 回答
2753 浏览

javascript - html/js:单页应用程序中是否存在“页面加载”事件?

我正在构建一个单页应用程序,它(预)通过 ajax 加载不同页面的内容。当用户导航时,应用程序将特定标签内的旧内容替换为新内容(ajax 数据)。该新内容可以是例如包含文本和图像的文章。

我的问题是:在替换内容并加载新内容的每个外部资源后,是否有触发事件?就像“准备好”刷新 DOM 一样?

0 投票
2 回答
1100 浏览

jquery - 动态单页 Drupal 站点

我正在寻找一些关于如何实施以下内容的建议。在这一点上,我根本没有与任何一种解决方案(模块)结婚。也就是说,我几乎肯定会使用Views / Chaos Toolsand StateHandler / History.js。我愿意使用Panelsor Blocks,事实上我真的很想使用 Panels。任何帮助将不胜感激!

我需要创建一个只有一页的站点,并将节点内容动态(使用AJAX)加载到视图上方的页面中。内容也必须可以从节点访问,URLs (node/1)在视口中加载带有节点内容“前端和中心”的完整站点页面。

如果我能澄清一下,请告诉我,并在此先感谢!

0 投票
2 回答
1739 浏览

php - 如何抓取 jquery 驱动的网站?

我正在构建一个单页 javascript 驱动的网站。我在主页上使用 php 作为 json 对象回显了所有页面的所有必要数据。然后我使用为每个页面制作的自定义插件初始化页面,它使用相关的 json 数据动态构建 dom,我将这些数据传递给插件,所以我没有任何 ajax 请求。我网站上的链接采用以下格式!#about、!#home 等...目前插件的 init 方法在hashchange上调用。我应该怎么做才能使这些页面可以被谷歌机器人抓取,以及如何为每个页面制作不同的标题和描述元标记?

我尝试了在谷歌文档和许多其他网站上找到的各种东西。我已将链接从 #mylink 更改为 #!mylink ,因此谷歌应该将其解释为 get _escape_fragment_ 变量,然后我尝试添加这段 php 代码:

其中 project.php 是一个包含相关信息的 html 快照,我希望对其进行抓取。基本上只是核心信息。但据我所知,没有任何反应...... :( 毕竟有没有办法在没有 AJAX 请求的情况下实现这一点?