【问题标题】:jQuery Load problem in Internet ExplorerInternet Explorer 中的 jQuery 加载问题
【发布时间】:2009-10-20 02:29:08
【问题描述】:

我在使用 jQuery 的加载功能时遇到了问题,希望能得到一些帮助。我刚刚开始测试我在 IE 中构建的站点以调试/破解/等以确保它可以正常工作。 Firefox/safari/etc 都很好用。 .load 对我不起作用。它似乎只是挂起。希望得到一些帮助。

这是问题的简化版本:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
  <script>
      $(document).ready(function(){
        $("#links").load("newfull.asp #Body");
      });
  </script>
</head>
<body>
    <div id="links">
        test area
    </div>
</body>
</html>

可以在http://www.stephenkiers.com/2010/delete.html查看页面

【问题讨论】:

  • 嗯,这确实很奇怪。我注意到,如果我使用 $.get 填充数据,我可以检索响应,并加载 SEEMED 以获取数据,但不会填充链接 div。 IE8不挂,但也不显示数据。
  • 错误是我将目标 ID Body 命名为已经是 HTML 元素。那是把IE搞砸了。谢谢大家

标签: internet-explorer jquery jquery-validate


【解决方案1】:

您是否尝试过将路径指定为绝对 URL 而不是相对于当前文档的相对路径?

$("#links").load("/path/to/newfull.asp #Body");

快速浏览一下 jQuery 页面会发现相对 URL 应该是可以接受的,但我想它值得一试。

编辑:您打算使用#Body 选择body 元素还是ID 为Body 的元素?

【讨论】:

  • 我将从 Body 中更改名称。那可能搞砸了。我应该知道最好不要使用 HTML 元素作为 ID 名称... tsk tsk
【解决方案2】:

从您的问题来看,您是否只是在 IE 中遇到问题并不清楚,但是当我在 FF、Chrome 和 Opera 中点击提供的页面时,它会按预期加载。当我在 IE 中浏览它时,我得到一个空白页,如前所述。因此,我假设您遇到同样的事情,而 IE 无法像其他浏览器一样呈现。

在 Fiddler 中跟踪 IE 请求我看到内容页面 (newfull.asp) 被请求并传递,这表明问题出在传递给 load 调用的 jQuery 选择器上。由于它适用于其他浏览器,因此与特定页面相关的 IE DOM 似乎是一个怪癖(或者只是 jQuery 和 IE 的一般错误)。通常,当我遇到此类问题时,我会检查标记的格式是否良好,在这种情况下,有几个 validation errors。解决验证错误并查看它是否对 IE 的行为有影响可能是值得的。

【讨论】:

  • 现在没有错误了。接得好。我没有想到。糟糕的是,它根本不会影响它。
【解决方案3】:

$("#links").load("newfull.asp #Body");

不用空格试试

$("#links").load("newfull.asp#Body");

【讨论】:

  • IE8 开发者工具非常棒。
  • 您是真的尝试过还是只是使用开发者工具尝试过?因为如果你直接在导航栏中输入 newfull.asp #Body,你会得到一个 404 页面
  • 空格是 jQuery 用来确定返回页面的哪一部分。所以这个请求只会从请求的页面返回#Body div。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-31
  • 2010-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多