【发布时间】:2012-08-04 00:03:02
【问题描述】:
我正在使用 jquery ajax 将内容从一个页面加载到当前页面的 div 中,类似于 gmail 在收件箱、垃圾箱等之间切换的方式。我使用的是 jQuery 的加载方法
$("#divGlobal").load("newPage.html #container");
将我需要的内容加载到我的 div 中。
newpage.html #container 也有与之关联的 javascript 和 css 文件。现在我通过将必要的<script> 和<link> 标签附加到<head> 来加载它们,但它并不总是有效。文件总是加载(我在 Firefox 中观看 XHR 信息),但似乎并不总是正常工作。
例如,如果我加载 page1.html 和相关文件(包括 UI 的 jQuery 函数),一切正常。但是,如果我随后加载 page2.html 并返回到 page1.html,文件加载但 jQuery 函数没有响应。
有没有更好的方法来加载与我正在加载的内容相关的 javascript 和 css 文件?
【问题讨论】:
-
以这种方式加载内容是一个非常糟糕的主意;它使页面更难维护,甚至打开可能的 XSS 漏洞。不要发送整个 html 页面(包含重复的
<html>、<head>和<body>标签),而是考虑使用AJAX以纯数据语法(如 JSON)仅加载必要的页面数据。其他选项包括一次加载所有内容(减少 HTTP 请求),甚至在适当的情况下使用 iframe。
标签: javascript ajax jquery jquery-load