內容頁面的 JavaScript 需讀取母版頁面的 HiddenField 值,但母版頁面渲染後的 ClientID 會加上命名容器前綴(如 ctl00_MainContent_HiddenField1),且若內容頁在 `
<script type="text/javascript">
function Check() {
// 1. 透過 <%= HiddenField1.ClientID %> 取得正確 ID
// 2. 若在 iframe 中,使用 parent.document 跨框架查找
var hidden = parent.document.getElementById('<%= HiddenField1.ClientID %>');
var val = hidden ? hidden.value : '';
return confirm("您已運輸 " + val + " 台");
}
</script>
HiddenField1.ClientID:伺服器端渲染時展開為實際 HTML id,**必須在 `<%= %>` 區塊中輸出**,不可放在外部 .js 檔。parent.document:內容頁若在 `// 頁面內嵌腳本定義全域變數
<script>
var hiddenFieldId = '<%= HiddenField1.ClientID %>';
</script>
// 外部 common.js
function Check() {
var hidden = parent.document.getElementById(hiddenFieldId);
// ...
}
ASP.NET 4.0+ 可設定 ClientIDMode="Static" 讓 ClientID 等同 Server ID,或改用 `<%# HiddenField1.ClientID %>` 搭配 `Page.DataBind()`,但在母版頁面架構下,`<%= %>` 仍是最直接可靠的方式。