ajax .load函数删除整个页面,只加载单个图像

时间:2014-11-20 21:15:12

标签: javascript ajax

我正在创建我的个人网页,其中包含精美的jQuery幻灯片功能,以显示和隐藏多个页面。它运作良好,但我必须考虑那些浏览他们的JavaScript禁用的人。这意味着我无法使用jQuery函数来隐藏和显示页面。目前,no-javascript用户将立即看到所有页面。因此,我希望修改将显示和正常运行的页面,并为javascript和非JavaScript用户隐藏一些页面。

我已经设计了一种实现此目的的方法,但我需要使用ajax或其他东西在javascript加载上加载这些隐藏页面并隐藏它。我尝试使用ajax .load来加载存储在文件中的页面片段,但它只是抛出整个页面并在页面片段代码中显示其中一个图像。

这是我用来加载页面的代码

$('#resume').load("include/mywork.php");

mywork.php文件看起来像这样。 (简化的)

<h1>My work</h1>
<div>
     <noscript><!--For non-javascript users -->
          <img class="insideIMG" src='images/works/worklogo.png' alt=''>
     </noscript>
     <script><!-- lazy loading plugin for javascript users -->
          document.write("<img class='insideIMG' src='images/loading.gif' data-echo='images/works/worklogo.jpg' alt=''>);
     </script>
     comments comments comments lorem ipsum
</div>

有没有其他人知道是什么导致javascript删除整个页面而只显示图像?

1 个答案:

答案 0 :(得分:2)

在已关闭的文档上使用document.write时,它会清空文档并将新内容写入其中。这就是您的情况下发生的情况,因为脚本在文档加载完成后执行。您唯一真正的选择是不使用document.write来创建该图像。

<h1>My work</h1>
<div>
     <img class='insideIMG' src='images/loading.gif' data-echo='images/works/worklogo.jpg' alt=''>
     comments comments comments lorem ipsum
</div>