我有一个在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) });
});
}
我从页面调用此函数并且它可以工作,除非有 1 个特定情况:当在“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 上调试。
如果我按“刷新” - 该功能会再次开始工作,并且我会在会话存储中看到该对象。
为什么会这样,可以做些什么来防止它?
我试图做出一个丑陋的设置
“窗口.位置=”
在有问题的情况下到自身的 url,但它没有帮助......
谢谢。