2010-12-22 77 views
0

我有以下的HTML代碼(其放置在多個文件),其插入一個textarea內的選定/點擊笑臉:JavaScript的笑臉功能沒有把笑臉放在合適的textarea內?

<a href="javascript:insertTheSmiley(':)');void(0)"><img src="images/smile.gif" alt=":)" title=":)" /></a> 

<!-- this is a link to open a popup listing all smilies (see smilies.html to see what it contains) --> 
<a href="#" onClick="window.open('smilies.html', 'Smilies', 'width=250,height=500,scrollbars=1');">Show all smilies</a> 

<textarea id="textarea" cols="60" rows="10" style="width: 100%"></textarea> 

<a href="javascript:insertTheSmiley(':)');void(0)"><img src="images/smile.gif" alt=":)" title=":)" /></a> 

<!-- this is a link to open a popup listing all smilies (see smilies.html to see what it contains) --> 
<a href="#" onClick="window.open('smilies.html', 'Smilies', 'width=250,height=500,scrollbars=1');">Show all smilies</a> 

<textarea id="textarea" cols="60" rows="10" style="width: 100%"></textarea> 

的smilies.html包含以下HTML:

<a href="javascript:putTheSmiley(':)');void(0)"><img src="images/smile.gif" alt=":)" title=":)" /></a> 

和所使用的JavaScript函數是:

<script> 
function insertTheSmiley(input) { 
document.getElementById('textarea').value += input; 
} 

function putTheSmiley(input) { 
window.opener.insertTheSmiley(input); 
} 
</script> 

什麼,我打算爲它做的是放置在適當的選擇/點擊笑臉textarea,目前(作爲一個示例場景),如果我點擊第二個笑臉鏈接(以及在smilies.html中)它將笑臉置於第一個textarea內,但是我希望它被放置在第二個(這是我考慮適當的) - 這只是一個例子來說明我的問題。

我猜它與元素ID有關的問題,是他們以某種方式自動執行此操作或解決方法,因爲我見過許多論壇軟件都這樣做?

繼承人的思想(這似乎不工作):

所有的
<script> 
function insertTheSmiley(input, id) { 
global id; 
document.getElementById(id).value += input; 
} 

function putTheSmiley(input) { 
global id; 
window.opener.insertTheSmiley(input, id); 
} 
</script> 

回答

0

首先,每個文本區域給予不同的ID ..使用相同的ID是壞的和錯誤的兼具。

其次,調用函數傳遞所需的textarea的ID時:

href="javascript:insertTheSmiley(':)', 'MySecondTextarea');void(0)" 

終於在功能insertTheSmiley改變代碼從功能參數,而不是它的方式的ID現在 - 交該函數的代碼,如果你需要這個幫助。

+0

感謝您的迴應,我編輯了insertTheSmiley()函數,並將其包含在我最初的問題中,您可以熟悉我做錯了什麼嗎? – Newbtophp 2010-12-22 09:43:36

+0

@Newbtophp:去掉函數中的`global id;`。 – 2010-12-22 09:49:56

0

您的textareas必須有不同的ID。您可以將相應的ID傳遞給insertTheSmiley(input)方法。