jquery加载IE FF和Chrome

时间:2010-02-07 13:40:07

标签: jquery

我想知道为什么当我添加.Load()方法加载的页面时,Chrome无法正确解析页面

我整合了一个带有完整html,head和body标签的页面,除了我的内容之外,它只是忽略了所有内容。无法集成jquery脚本......

我忽略了什么吗?在加载()时,chrome会过滤出html,head和body标签吗?

第二个问题......是否需要使用完整的html,在集成页面上标记正文标记,或者我可以只传递body标记和脚本之间的所有内容?

编辑:

触发颜色框的元素:

<a class="teaminfo cboxElement" href="news/teaminfo.htm">Lees verder</a>

加载的页面。 (简而言之)

<head>
<title></title>
<link type="text/css" href="/style/style.css" rel="stylesheet"  />
<link type="text/css" media="screen" rel="stylesheet" href="/style/style.css" />

<meta name="keywords" content="" />
<script src="/js/jquery-1.4.1.min.js" type="text/javascript"></script>
<script  src="/js/jquery.colorbox-min.js" type="text/javascript"></script>
    <script type="text/javascript">
    $(document).ready(function()
    {
        $(".teaminfo").colorbox();
    });
</script>

第3和第4个问题:如果我在页面的body元素中放置一个脚本,它是否会使用调用页面头脚本,并在w3c验证?

2 个答案:

答案 0 :(得分:1)

load方法在文档正文中有一个隐含的(不可避免的,我相信)过滤器。这曾经在jQuery网站上记录,但在当前的文档中似乎缺失了。考虑到load将返回的数据放在body中的容器中,很明显为什么它会过滤掉body外的所有内容 - 在文档中包含多个html和/或head元素是非法的,并且它们在任何元素中都是非法的这将包含在文件正文中。

注意:我可以轻松加载出现在文档正文中的脚本元素。也许您需要做的就是将它们从头部移动到片段的主体。需要注意的是,脚本可能需要是您网站的本地脚本。由于安全问题,浏览器可能会拒绝加载通过ajax加载的远程脚本。

答案 1 :(得分:1)

您可以将此作为脚本剥离的解决方法(更新以匹配您发布的代码):

如果您的电话是:

$("#myElem").load("myPage.htm");

您可以尝试添加回调(if you pass params, callback is the third param):

$("#myElem").load("myPage.htm", function(resp) {
  $('.teaminfo', resp).colorbox();
});

现在只需将<script src="/js/jquery.colorbox-min.js" type="text/javascript"></script>放入主页即可。这将仅在响应中的.colorbox();元素上调用.teaminfo

对于另一个问题,是的,你可以只传递体内的内容并看到相同的结果。