2010-12-22 45 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)方法。