2013-01-03 24 views
0

我有兩個文件,如如何將值從Java腳本傳遞給HTML?

DataProcesser.js

var FROM; 
var TO; 
var CONTECT; 

function getValues(fromAdd,toAdd,ContectText){ 
alert("method called"); 
    FROM=fromAdd; 
    TO=toAdd; 
    CONTECT=ContectText; 
alert("values are " + FROM +" "+ TO +" "+ CONTECT); 
window.open('email.html','newwindow'); 
} 

EMail.html

在身體的onload

function loadData(){ 
    document.getElementById('lblFrom').innerHTML =window.FROM; 
    document.getElementById('lbTo').innerHTML = window.TO; 
    document.getElementById('lblfrom1').innerHTML = window.FROM; 
    document.getElementById('lblto1').innerHTML = window.TO; 
    document.getElementById('txtAreaBody').value =window.CONTECT; 

} 

我如何可以傳遞,於contect電子郵件。 HTML?我在Body Onload中編寫了loadData函數。獲取未定義的值。從另一個HTML調用getvalues函數。

+0

您從哪裏調用getValues函數? –

+3

「contect」,「Processer」和CAPS變量使我的眼睛受傷 –

回答

0

每個HTML文檔都有自己的Javascript上下文。所以你不能從另一個HTML頁面訪問變量。

但是你可以做的是將這些變量作爲URL的一部分來傳遞。您可以使用?-operator將URL與傳遞給它的數據分開。例如:

email.html?from=somewhere&to=somewhereElse&connect=somevalue 

的網絡服務器只會interprete everyting到?作爲文件名的一部分,其餘的都是傳遞給它的GET參數。因此,網絡服務器將返回文件email.html。在該頁面上,您可以訪問完整的URL並使用變量document.location解析參數。

另一種選擇是using cookies。但請記住,有些用戶禁用了Cookie(比禁用javascript的用戶更重要),因此您不應該依賴它們來實現您網站的任何主要功能。

但是,最好的方法是將所有數據存儲在服務器上,並使用會話處理機制,該機制在可用時使用cookie,並使用GET參數作爲後備向每個單獨用戶分配會話ID。這最重要的優點是用戶不能輕易地篡改數據。但是,這不能單獨使用客戶端JavaScript來完成,因爲它需要服務器端腳本。

+0

除查詢字符串和Cookie外,我們還有其他選擇嗎? –

+0

那麼,有HTML5本地網絡存儲。或者你可以使用Adobe Flash的cookie機制(大多數停用cookie的人忘記了他們仍然啓用了flash)。 – Philipp

0

所以變量FROM,TO,CONTECT有時會在getValues()中設置。然後調用loadData(),以便加載的HTML使用您獲得的值。所以我假設getValues()和loadData()在相同的JS上下文中,並且變量可以直接訪問。

更改此代碼:

 document.getElementById('lblFrom').innerHTML =window.FROM; 

 document.getElementById('lblFrom').innerHTML = FROM; 

做人之道其他變量。

PS:發佈代碼時,請同時指定流程。發佈隨機代碼片段不會幫助我們理解問題。

+0

我從另一個HTML文件調用getvaules()。我嘗試過,但沒有訪問這些值。 –

+0

你不清楚。你有多少個JS文件和多少個HTML文件?請編輯該問題,以粘貼來自您正在使用的每個相關HTML/JS文件的相關代碼片段。並解釋你的通話流程。 –