【发布时间】:2011-10-01 13:54:46
【问题描述】:
我正在尝试用另一个页面替换所有 HTML(包括 HTML 标记)。我想要做的是让一个网站作为一个应用程序,即使在导航另一个页面时也是如此。
代码如下:
(function($) {
Drupal.behaviors.loadingPage = {
attach: function(context,settings) {
$('a').click(function(event) {
event.preventDefault();
// Create the loading icon
// ...
$.ajax({
url: $(this).attr('href'),
success: function(data) {
$('html').replaceWith(data);
}
});
});
}
};
})(jQuery);
我已经尝试了几件事。 replaceWith() 在删除 HTML 标签后导致 jquery.js 中的 jQuery 错误,我猜是因为它无法再找到父级来添加替换。
我得到的最好结果是document.write(data)。问题是,加载页面上的javascript代码没有执行。
谁有更好的主意?
【问题讨论】:
-
尝试用数据的内容替换
<html>标签的内容?<html>没有任何有用的属性。 -
也就是说,这将实现的唯一目标是在用户单击其上的链接之前模拟其他页面。
-
@Sii 如果有的话,它保存着你不想重做的浏览器测试结果,因为我们都在使用 Modernizr 对吗? :P
-
如果你还是要重新加载整个页面,你为什么要用ajax呢?只需将
window.location设置为新的 URL,或者如果您需要将其作为 POST 而不是 GET,可以 POST 表单。 -
@Sii 数据变量中包含 HTML 标记,这就是为什么我不能直接替换它的原因。尖尖的:请参阅下面我对 nnnnnn 的回答。
标签: javascript jquery drupal drupal-7