清除弹出窗口并在父窗口中单击href时写入新内容

时间:2014-07-22 16:08:24

标签: javascript php jquery html

$.ajax({
    type:'POST',
    url: 'function.php',
    success: function(data){
        win = window.open("", "Window", "width=620,height=320,scrollbars=yes,titlebar=no,resizable=no"); 
        if(win && !win.closed)
        {
            win.document.clear();
            win.document.writeln(data);
            win.document.writeln("<a href='javascript:self.close()'>close window</a>");
            win.focus();
        }  
    }
});

function.php返回一个html表。

在父表单中包含多个链接,每次按下链接时我都需要根据链接ID刷新内容的新值。

2 个答案:

答案 0 :(得分:0)

您可以使用jQuery删除html和body标签的内容:

$('body').empty();

$('html').empty();

这意味着,function.php必须通过AJAX返回一个完整的页面或至少返回页面正文 - 作为新内容插入win.document.writeln(data);(就像你拥有它)或{{1} }

答案 1 :(得分:0)

这是一个修复问题的JSBin:http://jsbin.com/pekemecu/3/edit?html,js,output(仅在Google Chrome上测试)

您的弹出窗口未被清除,因为您正在窗口对象上调用getElementsByTagName。相反,您需要在window.document对象上调用它。另外,不要将html标记的innerHTML设置为空白。如果您这样做,则所有后续的writeln来电都将无效。

另外,请使用var声明变量,否则所有变量都会被转储到全局范围。