0

我有一个页面(test.html),其中包含一个对话框(dialog.html)的链接,然后加载一个列表视图(list.html)。这适用于除 ie7 和 ie8 之外的所有浏览器。如果我然后将对话框设为单独的页面 (test2.html),它将在 ie7 和 ie8 中加载列表。

我试图调试console.log()以找出执行的内容,并且当从 ie8 中的 test.html 加载 dialog.html 时,没有执行来自 dialog.html 的任何 javascript。

任何建议如何解决这个问题?


代表我的问题的两个最小/简化示例:
https://zero3.dk/guru/testing/test.html
https://zero3.dk/guru/testing/test2.html

测试.html

<!DOCTYPE html>
<html>
<head>
<title>test</title>
<link rel="stylesheet" href="styles/jquery.mobile-1.2.0.min.css" type="text/css">  
<script type="text/javascript" src="scripts/jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="scripts/jquery.mobile-1.2.0.min.js"></script>
</head>
<body>
<a href="dialog.html">Open dialog</a>
</body>
</html>

对话框.html

<div data-role="dialog">
<script>
$('#lp-list').load('list.html',function(){
$(this).trigger("create");
});
</script>
<div data-role="header" data-theme="b">
<h1>Lokationsvælger</h1>
</div>
<div data-role="content" id="lp-list">
</div>
</div>

列表.html

<ul data-role="listview">
<li>First</li>
<li>Second</li>
<li>Third</li>
</ul>

test2.html

<!DOCTYPE html>
<html>
<head>
<title>test</title>
<link rel="stylesheet" href="styles/jquery.mobile-1.2.0.min.css" type="text/css">  
<script type="text/javascript" src="scripts/jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="scripts/jquery.mobile-1.2.0.min.js"></script>
<script>
console.log("1");
</script>
</head>
<body>
<div data-role="dialog">
<script>
$('#lp-list').load('list.html',function(){
$(this).trigger("create");
});
</script>
<div data-role="header" data-theme="b">
<h1>Lokationsvælger</h1>
</div>
<div data-role="content" id="lp-list">
</div>
</div>
</body>
</html>
4

1 回答 1

0

通过将所有 JavaScript 从 dialog.html 移动到 test.html 解决了这个问题。

<!DOCTYPE html>
<html>
 <head>
  <title>test</title>
  <link rel="stylesheet" href="../styles/jquery.mobile-1.2.0.min.css" type="text/css">  
  <script type="text/javascript" src="../scripts/jquery-1.8.2.min.js"></script>
  <script type="text/javascript" src="../scripts/jquery.mobile-1.2.0.min.js"></script>
  <script>
  $(document).on('pageinit', function() {
   $('#lp-list').load('list.html',function(){
    $(this).trigger("create");
   });
  });
 </script>
</head>
<body>
 <a href="dialog.html">Open dialog</a>
</body>
</html>
于 2012-12-03T22:41:19.123 回答