2012-02-28 33 views
2

我有一個鏈接,它在簡單的jquery的新選項卡中啓動新的html頁面,如,沒有問題。如何在提供下載對話框時將頁面作爲html提供服務

預計:

  • 頁面在新標籤打開,並應保持打開,另存爲對話框提示

當前異常行爲:

  • 頁面打開在新選項卡中,然後用提示保存對話框關閉

不久,我想保持頁面打開,同時提示另存爲對話框。使用Content-Disposition附件似乎沒有機會保持打開頁面。 我也沒有做任何exit();,但從未顯示該頁面,除了對話框。

感謝

+0

在jQuery代碼,在任何的是在此過程中被使用的功能「返回false」? – 2012-02-28 16:02:27

+0

jquery除了:window.open(url,'external');我期待更多的服務器端的事情。謝謝 – swan 2012-02-28 16:03:42

回答

4

嘗試最初拉着你的頁面作爲一個正常的頁面,並使用元刷新重定向到相同的URL與參數告訴你的PHP再次服務的頁面下載。

例子:

<?php 
$isDownload = isset($_GET['download']); 
if($isDownload) { 
    header('Content-disposition: attachment'); 
} 
?> 
<html> 
    <head> 
     <?php if(!$isDownload) { ?> 
     <meta http-equiv="refresh" content="0;<?=$_SERVER['REQUEST_URI']?>?download" /> 
     <?php } ?> 
... 
+0

是的,聽起來不錯,但不知道如何將它帶入我的代碼:) – swan 2012-02-28 16:07:35

+0

感謝param的東西是我的CMS中蜿蜒的道路:) – swan 2012-02-28 16:26:05

+0

看起來你可能已經知道了,但我添加了一個例。 – 2012-02-28 16:33:30

1

不知道這是一個很好的答案或不..但也許..打開顯示的頁面另存爲對話框&嘗試一些document.location.href =「abspathtofile 「;在js ..雖然我不知道這是你正在尋找..

1

插入一個元刷新標籤到您當前在彈出窗口中服務的頁面。此元刷新應該指向該文件要下載:

popup.php: 

<head> 
    ... 
    <meta http-equiv="refresh" content="10;URL='http://www.example.com/downloads/file.ext'" />  
    ... 
</head> 

這將在新窗口中顯示popup.php,和10秒後的保存對話框將顯示,提示用戶下載該文件file.ext

0

發送刷新頭

標題( 「刷新:5; URL = HTTP://www.example.com中下載= 1?」);

,而不是需要修改你的模板中添加meta標籤