2014-10-31 69 views
0

在任何地方找不到如何使下拉列表打開.xls文件。使用Javascript從下拉列表中打開一個.xls文件

什麼我的代碼是:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
 
<html xmlns="http://www.w3.org/1999/xhtml"> 
 
<head> 
 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
 
<title>Untitled Document</title> 
 

 
<script type="text/javascript"> 
 
function download(d) { 
 
\t if (d !== '') { 
 
\t \t window.open('URL goes here/' + d); 
 
\t } 
 
} 
 
</script> 
 

 
</head> 
 

 
<body> 
 
Excel List: 
 
\t <select name="download" onchange="download(this.value)" style="width:150px;" > 
 
    \t <option value="">Select an Excel list</option> 
 
     <option value="file_name1.xls">File name</option> 
 
     <option value="file_name2.xls">File name</option> 
 
    </select> 
 

 

 
</body> 
 
</html>

當我做到這一點,它會打開另外4個選項卡,然後問我是否想打開或保存Excel文件。我如何通過選擇excel列表來使其工作,並且不打開4個附加選項卡,只顯示打開或保存文件?

+0

你不能強制從JS下載文件。 JS不能訪問標題。你需要一些PHP。 – 2014-10-31 03:35:55

+0

此確切代碼適用於PDF文件 – 2014-10-31 03:37:36

+0

瞭解瀏覽器的工作原理。你不能強制從JS下載PDF。瀏覽器將嘗試顯示它,如果它有一個PDF插件,否則將被下載。不要以爲它在你的瀏覽器中工作,它會一直工作。 – 2014-10-31 13:39:01

回答

0

你只需要使用 '_self'。

window.open('URL goes here /'+ d,'_self');

window.location.href ='URL goes here /'+ d;

0

您的問題的關鍵是window.open()方法。它被記錄爲here。此方法所做的是使用第一個參數作爲要在新窗口中加載的URL的名稱來打開一個新窗口。 window.open()方法可以將值作爲參數2來確定應該在哪裏加載新的瀏覽器窗口。默認值是_blank,它會打開一個新窗口(選項卡),這是您所看到的。這聽起來像你可能想要提供_self來替換當前頁面與選定的文件。然後

您的新代碼將變爲:

function download(d) { 
    if (d !== '') { 
     window.open('URL goes here/' + d, '_self'); 
    } 
} 
相關問題