2

我有一个带有 atextarea和 a的表格button。要textarea在按钮单击的同一窗口的另一个选项卡中显示值,我使用了这个:

<input type="button" name="preview" id="inline_submit_a" value="PREVIEW" />
<script>
    $('#inline_submit_a').click(function(evt) {
        var msg = document.getElementById('message').value;
        var myLineBreak = msg.replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '<br />');

        jQuery.ajax({
            type: 'POST',
            url: '/someajax.php',
            data: "msg="+myLineBreak,
            success: function(data) {
                window.open("<?=SITEURL?>includes/templates/preview/template1/postoffer_preview.php?offer="+data,'_blank');
                return false;
            }
        });
    });
</script>

我通过查询字符串发送,

  1. 如何通过 POST 而不是查询字符串 (GET) 将值发送到另一个页面,因为它最多只需要有限的字符。

  2. 另外,如何获取 html 内容(带中断),我使用了这个:var myLineBreak = msg.replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '<br />'); 但是中断了一些文本。

  3. 此外,window.open("<?=SITEURL?>test.php?msg="+data,'_blank');这在 Firefox 中效果很好,但在 Chrome 中,它会打开一个新窗口,

有人可以帮我解决这个问题..我是否朝着正确的方向前进?

谢谢

4

1 回答 1

0

像这样,使用 form.target 和空 window.open (代码未测试):

<form name="myform" action="postoffer_preview.php" target="myNewWin" method=post"> 
   <input type="button" name="preview" id="inline_submit_a" value="PREVIEW" />
</form> 

<script>
    var open_post_window = function () 
    { 
        window.open("","myNewWin","width=500,height=300,toolbar=0"); 
        document.myform.submit(); 
    } 

    $('#inline_submit_a').click(function(evt) {
        var msg = document.getElementById('message').value;
        var myLineBreak = msg.replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '<br />');

        jQuery.ajax({
            type: 'POST',
            url: '/someajax.php',
            data: "msg="+myLineBreak,
            success: function(data) {
                open_post_window();
                return false;
            }
        });
    });
</script>

可能需要在 document.myform.submit() 上添加一点 setTimeout。

于 2012-04-27T14:52:23.063 回答