用JS从外部PHP文件动态创建内容


create content dynamically with JS from external PHP file

我试图创建一个弹出窗口相当多的内容,所以我把内容到一个单独的。php文件,我使用以下javascript来获得我想要的效果:

$('#popup').show();
var u = $("#username").html();
$('#popup').html('<iframe src="content.php?u='+u+'"></iframe>');

这个工作得很好,除了当用户按下转义键时我有一个close函数:

$(document).keyup(function(e) {
  if (e.keyCode == 27) { 
    $('#popup').hide().html('');
    } 
});

我的问题是,一旦弹出窗口打开,用户在iframe内单击,escape按钮不再关闭窗口,因为我正在使用iframe。

在Javascript中是否有更好的方法来动态地包含外部php文件,或者是否有一种方法可以使转义按钮功能工作,即使iframe已在其中单击?

你可以使用jQuery的.load():

$('#popup').load('somefile.php');

不建议用iframe,用ajax。如果你仍然想使用iframe,那么你必须将popup存储在top中,例如在主php文件

中添加以下代码
top.popup = $('#popup');
top.popup.show();
var u = $("#username").html();
top.popup.html('<iframe src="content.php?u='+u+'"></iframe>');

及以下phpcontent.php主代码

$(document).keyup(function(e) {
    if (e.keyCode == 27) {
        top.popup.hide().html('');
    }
});