Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery Mobile和Firefox don';你们在一起玩得不好吗?_Javascript_Jquery_Html_Jquery Mobile - Fatal编程技术网

Javascript JQuery Mobile和Firefox don';你们在一起玩得不好吗?

Javascript JQuery Mobile和Firefox don';你们在一起玩得不好吗?,javascript,jquery,html,jquery-mobile,Javascript,Jquery,Html,Jquery Mobile,jquerymobile在初期出现了一些问题。我想知道是否有其他人在使用Firefox(桌面)时遇到了一点错误,并且jQuery移动脚本包含在他们的中,比如: <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"></scr

jquerymobile在初期出现了一些问题。我想知道是否有其他人在使用Firefox(桌面)时遇到了一点错误,并且jQuery移动脚本包含在他们的
中,比如:

<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>
我知道这些错误看起来相当冗长,但我不熟悉臃肿的javascript插件及其关于优雅降级的策略。还有其他人有这个问题吗

更新

根据Tim的回答,我已经拍摄了证据,证明这些jQuery手机“警告”实际上影响了页面。下面是我注释jQuery移动脚本标记时的页面:

以下是jQuery移动脚本标记保留在中时页面的外观:


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

我的东西在使用Firefox时经常会被抛出格式(还有许多其他小错误)。如果只是为了测试,我建议使用Google Chrome或Safari以获得最佳性能…

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

请看一下:

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

如果它困扰您,您可以在Firefox开发控制台中关闭警告,但是如果您要使用jQuery Mobile,恐怕警告将显示为URL,而不显示哈希。这不是Firefox试图告诉你什么是错误的,它只是Firefox告诉你什么可能是错误的,这在本例中是不正确的

关于其他警告,可能有用。jQuery似乎使用了不推荐的
getPreventDefault()
,以与Android 2.3兼容。

是的,jQuery Mobile在加载时会“弄乱DOM”。例如,jQuery Mobile会将您的内容包装在一个“页面”div中:

在幕后,框架将注入页面包装器(如果它是 不包括在标记中,因为它是管理页面所必需的 ()

但是你可以通过每次只包含一个jQuery移动位来看看是CSS还是Javascript破坏了你的站点

关于调用
getElementById()
,我也收到了同样的警告,我可以确认这只是一个警告,不会影响布局,但是没有用


最后,您是否尝试使用仅获取您感兴趣的部件(即触摸功能)?

提供的行号是提示错误的行号。使用浏览器的“堆栈跟踪”功能查找您自己的代码导致这些问题的地方。@Brian我已经删除了所有的JavaScript,错误仍然存在,所以不是我的代码破坏了它…@Brian我不使用Firefox(仅使用它进行测试),所以就我所见,它是一个干净的安装。没有“扩展”,安装时有一些普通的插件(见图片编辑的问题)。我也刚刚删除了除两个脚本和一个主体(如你的示例)之外的所有内容,错误仍在抛出……我不会在我不打算投入生产的平台上进行测试……哦,根据你的评论,我以为你不会使用Firefox我知道你是来回答的,不是来问的,但我的建议是认真对待Firefox作为一个广泛使用的供应商;即使它不是你最喜欢的浏览器。我只是用chrome来测试我的jqm+phonegap android应用程序,一切都是一样的,但是cordova函数不起作用(显然)为我的草率语义道歉。它们确实是警告,但由于它们正在生成一个断页,因此它们是不可忽略的。请参阅更新的问题,以获取可比较的图像。除非警告本身与坏页面无关,我需要到别处寻找答案。jQuery Mobile在加载时是否会弄乱DOM/CSS?如果是,原因和方式?我肯定这些警告不会破坏您的页面,但jQM确实会在加载时弄乱页面。当然,这个问题的特殊部分可以通过在URL末尾附加一个哈希来轻松测试。然后你可以看看这是否只是摆脱了这个“警告”,或者是你更大问题的原因。@Strings同意,而且在没有看到相关页面中的任何代码的情况下,也不可能进一步解决问题。恐怕我已经给了Mathew答案。虽然这很有帮助,但Mathew的回答让我去仔细查看DOM。事实上,jquerymobile已经在我的网页中注入了一些它的bunk(甚至不需要调用脚本)。你有过+1经历。:-)是的。jQuery Mobile用一堆类和一些div劫持了我的DOM。Firefox比Chrome更容易受到包装元素的影响。他们似乎对盒子模型有不同的解释,特别是在高度方面。
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
// 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 );