gpt4 book ai didi

javascript - JQuery Mobile 和 Firefox 不能一起玩?

转载 作者:太空宇宙 更新时间:2023-11-04 14:18:32 27 4
gpt4 key购买 nike

在使用 jQuery Mobile 时遇到一些初期问题。想知道是否有其他人在使用 Firefox(桌面)并在其 <head> 中包含 jQuery Mobile 脚本时遇到一些错误。像这样:

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.min.js"></script>

在 Chrome 和 Firefox 中,我都遇到了很多 CSS 错误,我认为这些错误可以忽略不计。但在 Firefox 中,除此之外我还遇到了几个 JS 错误,这似乎也破坏了我的页面(响应元素不像我删除 jQuery Mobile 脚本时那样呈现)。

JS 错误:

Empty string passed to getElementById(). @ http://code.jquery.com/mobile/1.3.2/jquery.mobile-1.3.2.js:11100
Use of getPreventDefault() is deprecated. Use defaultPrevented instead. @ http://code.jquery.com/jquery-1.9.1.js:3346

我知道这些错误看起来很冗长,但我不熟悉臃肿的 javascript 插件及其关于优雅降级的政策。还有其他人遇到这个问题吗?

更新

根据 Tim 的回答,我已经截取了这些 jQuery Mobile“警告”实际上正在影响页面的证据。下面是我注释掉 jQuery Mobile 脚本标签时的页面:

Without jQuery Mobile

下面是保留 jQuery Mobile 脚本标记时页面的样子:

With jQuery Mobile

请注意,我想使用 jQuery Mobile 的原因纯粹是因为它的移动触摸/滑动事件。我没有兴趣采用它的散列/ajax 链接功能。

最佳答案

Firefox 给你的是警告,不是错误:)

看看 jQuery Mobile source :

// find present pages
var path = $.mobile.path,
$pages = $( ":jqmData(role='page'), :jqmData(role='dialog')" ),
hash = path.stripHash( path.stripQueryParams(path.parseLocation().hash) ),
hashPage = document.getElementById( hash );

使用Chrome开发工具在该行设置断点(Firefox和Firebug似乎无法加载整个脚本),我们可以看到 path.parseLocation().hash 没有了URL 中没有散列,因此 document.getElementById( hash ) 将抛出您在 Firefox 中看到的警告。

如果这让您感到困扰,您可以关闭 Firefox 开发控制台中的警告,但如果您要使用 jQuery Mobile,恐怕会针对没有散列的 URL 显示警告。这不是 Firefox 试图告诉您出了什么问题,它只是 Firefox 告诉您某些事情可能是错误的,在这种情况下这不是真的。

关于另一个警告,this discussion可能有用。 jQuery 似乎使用已弃用的 getPreventDefault() 来与 Android 2.3 兼容。

关于javascript - JQuery Mobile 和 Firefox 不能一起玩?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18861852/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com