1

这个非常基本的页面:http ://www.marianotomatis.it/test.php 在“某些”IE 版本中无法正确呈现。

<!DOCTYPE HTML>
<html>
<head><title>Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.1/jquery.mobile-    1.3.1.css" />
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.js"></script>
</head>
<body>
<div id="A" name="A">
 <div data-role="rangeslider">
    <label for="B">Range</label>
    <input type="range" name="B" id="B" min="0" max="100">
    <label for="C">Range</label>
    <input type="range" name="C" id="C" min="0" max="100">
 </div>
</div>
</body>
</html>

它在此行的脚本jquery.mobile-1.3.1.js上停止:

_sliderFirst = $.data( _inputFirst.get(0), "mobileSlider" ).slider,

出现SCRIPT5007错误(“无法获取属性 'slider' 的值:对象为空或未定义。”)

我正在使用 IE10 进行调试,并且我已经测试了浏览器模式 (BM) 和文档模式 (DM) 的一些组合,以检查错误的组合。希望这可以帮助:

BM=IE10 DM=标准[OK]
BM=IE9 DM=标准[OK]
BM=IE8 DM=标准[OK]
BM=IE7 DM=标准[OK]
BM=IE10 DM=非标准[OK]
BM=IE9 DM =非标准 [OK]
BM=IE8 DM=非标准 [OK]
BM=IE7 DM=非标准 [OK]
BM=IE10 DM=标准 IE9 [错误]
BM=IE9 DM=标准 IE9 [错误]
BM=IE8 DM =标准 IE9 [错误]
BM=IE7 DM=标准 IE9 [错误]
BM=IE10 DM=标准 IE8 [错误]
BM=IE9 DM=标准 IE8 [错误]
BM=IE8 DM=标准 IE8 [错误]
BM=IE7 DM =标准 IE8 [错误]
BM=IE10 DM=标准 IE7 [错误]
BM=IE9 DM=标准 IE7 [错误]
BM=IE8 DM=标准 IE7 [错误]
BM=IE7 DM=标准 IE7 [错误]

我还尝试使用 IE8 对其进行调试,并正确呈现页面。提前感谢您的任何建议。

4

2 回答 2

1

我遇到了同样的问题,当我将 data-type="range" 添加到输入时,我摆脱了 Internet Explorer 中的错误:

<input type="range" data-type="range" name="B" id="B" min="0" max="100">
于 2013-08-02T16:30:22.337 回答
0

这是一个与另一个针对 jQuery Mobile 1.3.0 “ IE9 (JQuery Mobile) 中的 Rangeslider 错误消息”提出的问题类似的问题

我已经能够在 IE10(包括 WP8)和 Chrome 28 的 jQuery Mobile v1.3.2 中重现此问题。

在对 JQM 组合 JS 文件进行了一些挖掘之后,我发现几个地方的逻辑正在调用类似的东西,$.data( _inputFirst.get(0), "mobileSlider" ).slider如果你踏入那个调用堆栈,你会发现它会在某一时刻检查一个未定义的变量,如果它是那么将键 ( "mobileSlider") 转置为驼峰格并再次检查。在这种情况下,原始密钥是驼峰式的,如果它是带有连字符 ( ) 的小写字母"mobile-slider",它就不会失败。

为了更正 JQM v1.3.2 中的这个问题,我已经替换了"mobileSlider"with的实例,"mobile-slider"现在我有了预期的行为和工作滑块以及范围滑块。

这是我进行上述更改的行和行号。

  1. jquery.mobile-1.3.1.js(7861): _sliderFirst = $.data(_inputFirst.get(0), " mobileSlider ").slider,
  2. jquery.mobile-1.3.1.js(7862): _sliderLast = $.data(_inputLast.get(0), " mobileSlider ").slider,
  3. jquery.mobile-1.3.1.js(7863): firstHandle = $.data(_inputFirst.get(0), " mobileSlider ").handle,
  4. jquery.mobile-1.3.1.js(7919): $.data(this._inputFirst.get(0), " mobileSlider ").dragging = true;
  5. jquery.mobile-1.3.1.js(7920): $.data(this._inputFirst.get(0), " mobileSlider ").refresh(event);
  6. jquery.mobile-1.3.1.js(7932): $.data( otherSlider.get(0), " mobileSlider " ).dragging = true;
  7. jquery.mobile-1.3.1.js(7933): $.data( otherSlider.get(0), " mobileSlider " ).refresh( event );
  8. jquery.mobile-1.3.1.js(8006): $.data( otherSlider.get(0), " mobileSlider " ).handle.focus();
  9. jquery.mobile-1.3.1.js(8014): $.data(thisSlider.get(0), " mobileSlider ").handle.css("z-index", 1);
  10. jquery.mobile-1.3.1.js(8015): $.data( otherSlider.get(0), " mobileSlider ").handle.css("z-index", 0);
  11. jquery.mobile-1.3.1.js(8017): $.data( otherSlider.get(0), " mobileSlider ").handle.css("z-index", "");
  12. jquery.mobile-1.3.1.js(8018): $.data(thisSlider.get(0), " mobileSlider ").handle.css("z-index", "");
  13. jquery.mobile-1.3.1.js(8029): var min = parseInt($.data(this._inputFirst.get(0), " mobileSlider ").handle.get(0).style.left, 10),
  14. jquery.mobile-1.3.1.js(8030): max = parseInt($.data(this._inputLast.get(0), " mobileSlider ").handle.get(0).style.left, 10),
于 2013-07-27T13:17:58.333 回答