我有一个在ajax调用之后动态重写div的函数
function showPage(href){
setTitle("",0);
$.ajax({
type: "POST",
url: href,
cache: false,
success: function(html){
rewriteContentDiv(html,isNotFade);
}
});
}
function rewriteContentDiv(html, href, isNotFade) {
var bodyObj;
if($('#content-div').length !=0){bodyObj=document.body;}else{bodyObj=parent.document.body;}
$('#content-div', bodyObj).fadeOut("slow", function () {
var div = $('<div class="content" id="content-div">test2</div>').hide();
div.html(html);
$('#content-div', bodyObj).replaceWith(div);
$('#content-div', bodyObj).fadeIn("slow");
$('#content-div', bodyObj).find("a").click(function (e) { catchAnchorClick($(this), e) });
});
}
我从一个页面调用此函数并且它有效,除非有一个特定的情况: 当在“content-div”内部时,我有一个带有按钮的iframe,该按钮使用
将某些内容写入会话function setObject(key,value){
var session = window.sessionStorage;
session.setItem(key, escape(JSON.stringify(value)));
}
该对象确实被写入会话,但随后rewriteContentDiv函数开始失败
$('#content-div', bodyObj).replaceWith(div);
行,没有显示任何异常或让我进入jQuery函数 - 我在chrome 30.0.1599.101 m上调试。
如果我按“刷新” - 该功能再次开始工作,我在会话存储中看到了该对象。
为什么会这样做以及可以做些什么来阻止它呢?
我试图制作一个设置
的丑陋技巧在有问题的情况下,“window.location的=”
到自己的网址,但它没有帮助...
感谢。
答案 0 :(得分:0)
再次检查代码,因为存在一些语法错误
function showPage (href){
setTitle("",0);
$.ajax({
type: "POST",
url: href,
cache: false,
success: function (html) {
rewriteContentDiv(html, href, isNotFade);
}
});
}
function rewriteContentDiv (html, href, isNotFade) {
var bodyObj;
if ($('#content-div').length > 0) {
bodyObj = document.body;
} else {
bodyObj = parent.document.body;
}
$('#content-div', bodyObj).fadeOut("slow", function () {
var div = $('<div class="content" id="content-div">test2</div>').hide();
div.html(html);
$('#content-div', bodyObj).replaceWith(div);
$('#content-div', bodyObj).fadeIn("slow");
$('#content-div', bodyObj).find("a").click(function (e) {
catchAnchorClick($(this), e) });
});
}