1、以下這段沒有問題
onClick="window.open('xray_excel.asp?UT=20251223&WO=WO1-25080721', '_blank', 'width=800,height=600');"
2、將傳遞的值改成變數后就沒辦法過了
onClick="window.open('xray_excel.asp?UT=' + UT + '&WO=' + WO + '', '_blank', 'width=800,height=600');"
之前用第二點是可以的,現在不行也不知道問題出在那里,上網找了很多資料,但試了都沒成功,還請各位大大幫忙看一下,謝謝囉!
試試這樣是否可以
UT_url ="UT="+UT;
WO_url ="&WO="+WO;
url="xray_excel.asp?"+UT_url+WO_url;
onClick="window.open(url, '_blank', 'width=800,height=600');"
請先檢查變數 UT 和 WO 是否在 onClick 觸發的作用域中已定義。推斷是由於無法讀取有效的 UT 或 WO 值,導致無法開啟有效的新頁面。
如果 UT 和 WO 值是由其他函式定義,推薦以下三種傳遞參數的方法:
let UT, WO;
function setValue() { /* 設定 UT 和 WO 值,並儲存於全域 */ }
function openWindow() {
const url = "xray_excel.asp?";
const params = new URLSearchParams();
params.set("UT", UT);
params.set("WO", WO);
window.open(url + params, '_blank', 'width=800,height=600');
// 假設:
// UT = "20251223"
// WO = "WO1-25080721"
// 則:
// url + params = "xray_excel.asp?UT=20251223&WO=WO1-25080721"
}
然後在 HTML 元素中呼叫 openWindow 函式。
<button onClick="openWindow()"></button>
在初始化時給 HTML 元素綁定事件監聽器,從全域取得 UT 和 WO 的值。
let UT, WO;
function setValue() { /* 設定 UT 和 WO 值,並儲存與全域 */ }
document.getElementById(/* HTML 元素 ID */).addEventListener("click", openWindow);
將 UT 和 WO 的值作為 HTML 屬性儲存於 HTML 元素中,在觸發 onClick 事件時從元素中讀取屬性。
function setValue() {
const button = document.getElementById(/* HTML 元素 ID */);
button.setAttribute("data-UT", /* UT值 */);
button.setAttribute("data-WO", /* WO值 */);
}
<button id="<!--HTML 元素 ID-->" onClick="const params = new URLSearchParams();params.set('UT', event.currentTarget.getAttribute('data-UT'));params.set('WO', event.currentTarget.getAttribute('data-WO'));window.open('xray_excel.asp?' + params, '_blank', 'width=800,height=600')"></button>
iThome鐵人賽