【问题标题】:$(document).ready Javascript fails to execute when reloading page$(document).ready 重新加载页面时无法执行 Javascript
【发布时间】:2014-06-16 01:19:58
【问题描述】:

.

当站点中的另一个页面重定向到该页面时,不会调用$(document).ready 中的代码。

使用 Spring MVC

第 1 页网址:/location/。这包含标记后的以下 sn-p。当用户从此处输入时,此 URL 被标记为站点的主 URL。

</body>
<script>
$(document).ready(function () {

    initializeCustomerPage();
});

$(window).resize(function() { google.maps.event.trigger(confirm_map,
'resize'); map.setCenter(latlng,15); });
</script>
</html>

这个页面有很多操作,然后将用户带到页面2。成功完成页面2中的操作后,用户点击主页链接。

现在,页面 1 加载,但上面的 JavaScript 函数没有被执行。

如果需要我的示例中的任何其他代码 sn-p 来帮助指导,请告诉我。

看到的 Firefox 控制台消息:

SyntaxError: 不推荐使用 //@ 指示 sourceMappingURL 编译指示。使用 //# 代替 jquery.mobile-1.3.1.min.js:7 错误:http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js 正在分配一个 //# sourceMappingURL,但已经有一个 主线程上的同步 XMLHttpRequest 已被弃用,因为它会对最终用户的体验产生不利影响。如需更多帮助http://xhr.spec.whatwg.org/confirm.js:52 传递给 getElementById() 的空字符串。 jquery.mobile-1.3.1.min.js:6 不推荐使用 getPreventDefault()。请改用 defaultPrevented。 jquery-1.8.2.min.js:2 ReferenceError: rd is not defined main.js line 53 > eval:39

我正在使用 jquery mobile,因此所有响应都被添加到同一个 DOM 中。因此,原始页面位于 DOM 中,因此从未被重新加载,因为它从未被取出。这意味着文档已经存在,因此永远不会触发 .ready。为了解决我的问题,我在相关上使用了 'rel="external"' 或强制刷新 DOM。

【问题讨论】:

  • 页面前面可能发生了 JS 错误。在浏览器中打开开发控制台,现在出现错误消息。如果不清楚,请与我们分享
  • @RobertLevy 提出了一个很好的建议,也可能是 jQuery 第二次加载不正确。
  • @RobertLevy,我已将控制台输出添加到正文中。我无法将这些与我遇到的问题联系起来,但也许我遗漏了一些东西。

标签: javascript jquery pageload


【解决方案1】:

控制台日志的最后一行指出了问题的根源:rd is not defined main.js line 53。看看这部分代码发生了什么。

【讨论】:

  • 正文代码到此结束。这是来自 GoogleMaps API 的错误。我不认为这会影响屏幕。当我查找它时,它显示为 Firefox 的东西。
  • 将正文末尾的完整脚本更新到主线程中。
  • 您的问题出在 main.js 的第 53 行,而不是 HTML 中的脚本标记
  • 我正在切换到 Firefox beta 31,看看是否能解决问题。现在,当我不使用控制台或使用其他浏览器时,脚本不会被调用。我仍然会进行升级,但我不知道这是否真的解决了我的问题。升级浏览器后将更新控制台输出。 *.com/questions/24174437/…
  • 我获得了 Firefox 31 测试版,但此特定消息未显示在控制台中。所有其他消息仍然完好无损:(
最近更新 更多