0

我試圖通過ID獲取元素並更新它,但是由於我對JavaScript相當新,似乎遇到了麻煩。這是我的表格:Javascript:通過ID更新元素?

<div class="formRow billingForm"> 
    <div class="formLabel">First Name</div> 
    <div class="formField"> 
     <input type="text" class="formTextField firstName" value="" name="firstName" maxlength="35" id="firstName"> 
    </div> 
    <div class="formExtraInfo formExtraInfoTall">Enter your name.</div> 
    </div> 

我試圖通過執行以下操作」

document.getElementById("firstName").value = "UPDATED"; 

更新「名字」的價值和它的作品,但是當我嘗試在我的實際網站即使它存在,我也會得到null。整個表單在iframe中雖然

+0

如果您的HTML是iframe和JS不是。無論如何它不會工作。 –

回答

2

您無法通過外部腳本訪問iframe的內容 - 這會引入XSS漏洞。以某種方式在iframe中加載該腳本,或者完全避免使用iframe k在same origin policy的此頁面瞭解有關此功能無法正常工作的信息。

0

當您調用iframe時,您還會調用另一個HTML頁面。 你必須在iframe的目標頁面中執行腳本。

0

請確保父頁面和iframe頁面的域名網址是是相同的那麼這是可能的。這是父級的JS訪問內部的表單。

var iframe = document.getElementById('iframeId'); 
var innerDoc = (iframe.contentDocument) ? iframe.contentDocument : iframe.contentWindow.document; 
innerDoc.getElementById("firstName").value = "UPDATED"; 

希望它能幫助 :)

0

如果形式是iframe中,並正在從iframe的父更新表單元素的值,請採用以下方式:

分配值形式的名稱,如以下:

<iframe src="formPage.html" onload="loaded()" name="myFrame" /> 

並給予ID到窗體元件例如「myForm的」

訪問形式的iframe裏面的元素:

myFrame.document.getElementById("myForm").firstName.value = 'UPDATED'; 

同時確保iframe中加載後您的腳本運行。您的iframe代碼有一個onload事件,您可以使用該事件來確定幀中的頁面何時加載。

1

嘗試

 iframe = getElementByTagName('iframe').contentWindow.document 
     iframe.getElementById('firstName').value = 'UPDATED' 
相關問題