【问题标题】:Open a new popup window and post data to it打开一个新的弹出窗口并将数据发布到它
【发布时间】:2012-11-19 09:22:34
【问题描述】:

我正在使用 jQuery 打开一个弹出窗口,我想在它打开时使用 post 方法向它发送数据。谁能帮帮我,提前谢谢。

我目前正在使用 get 方法传递数据,因此数据是 url 中的一部分,但我不希望数据在 url 中可见。

function openWindow(){

    var name = $('#name').val();

    var url = 'popup_window.php?name='+name;
    window.open(
        url,
        'popUpWindow',
        'height=400,     \
         width=650,      \
         left=300,       \
         top=100,        \
         resizable=yes,  \
         scrollbars=yes, \
         toolbar=yes,    \
         menubar=no,     \
         location=no,    \
         directories=no, \
         status=yes');
}

【问题讨论】:

  • 我已经添加了我正在使用的代码,
  • 这个问题是为了将 PHP 变量获取到另一个脚本(所有答案都建议使用会话),而不是表单值。
  • 非常感谢您的回复,除了session还有别的办法吗?

标签: jquery popup http-post


【解决方案1】:

这是基于How to open popup and populate it with data from parent window?中的答案

var newpage;
function openWindow() {
    $.post('popup_window.php', {name: $('#name').val()}, function(result) {
        newpage = result;
        window.open('Popup.html', 'popUpWindow','height=400, width=650, left=300, top=100, resizable=yes, scrollbars=yes, toolbar=yes, menubar=no, location=no, directories=no, status=yes');
    });
}

Popup.html 应包含:

<script type="text/javascript">
    if(window.opener && !window.opener.closed) {
        document.write(window.opener.newpage);
    }
</script>

【讨论】:

  • 我认为您可以将其简化为: window.open('javascript: document.write(window.opener.newpage);'.... 而且您根本不需要 Popup.html .
  • 我也遇到同样的问题,试过你的方法,问题是先加载数据再打开窗口,反应慢,我想先打开窗口再加载数据,我该怎么办?
  • 如果发布响应是文件下载 (csv)...有没有办法做到这一点,而不仅仅是在新窗口中显示文件内容?
  • @AS7K 我认为您不能在帖子回复中做到这一点。 Javascript 无法自行下载文件。必须由Popup.html 完成,可以发送Content-Disposition: attachment 开始下载。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-12
  • 2019-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-16
相关资源
最近更新 更多