簡體   English   中英

使用JavaScript訪問iframe中的asp.net隱藏字段控件?

[英]Accessing asp.net hidden field control inside iframe using javascript?

我已經使用Iframe在我的Default.aspx頁面中加載了Captcha圖像。 在Captcha.aspx文件中,我生成了隨機數並將該隨機數分配給一個隱藏字段。

Captcha.aspx:

<asp:hiddenField runat="server" ID="hdnCaptcha"/>

Captcha.aspx.vb:

hdnCaptcha.Value = randomNumber

Default.aspx:

<iframe id="ifrm" src="Captcha.aspx"/>

Javascript:

var iframe = document.getElementById('ifrm');
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
var captcha = innerDoc.getElementById('hdnCaptcha').value;

隱藏字段的驗證碼值始終返回null。 如何從iframe源頁面訪問隱藏字段值?

ASP.NET在生成的html中生成ID,該ID比在aspx標記中看到的ID長。 因此,您可以做的是:

  1. 將真實的客戶端ID插入javascript。 僅當js代碼位於aspx文件本身而不是單獨的js文件中時,此方法才有效:

     var captcha = innerDoc.getElementById('<%= hdnCaptcha.ClientID %>').value; 

    由於您要處理的是iframe,因此可能不是您的選擇。 然后參考

  2. 將隱藏字段的ID模式設置為靜態。 這將迫使ASP.NET按原樣輸出id,而不添加任何內容。 請注意,在這種情況下,確保iframe頁面上只有一個具有此ID的控件是您的工作:

     <asp:HiddenField runat="server" ID="hdnCaptcha" ClientIDMode="Static" /> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM