JavaScript笑脸功能没有将笑脸放在适当的textarea中?

时间:2010-12-22 09:29:57

标签: javascript html

我有以下HTML代码(放在几个文件中),它在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>

2 个答案:

答案 0 :(得分:0)

首先,为每个textarea提供不同的ID ..两者具有相同的ID是坏的。

其次,当调用函数时,传递所需textarea的ID:

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

最后在函数insertTheSmiley中更改代码以从函数参数中获取ID而不是现在的方式 - 如果需要帮助,请发布函数代码。

答案 1 :(得分:0)

您的textareas必须有不同的ID。您可以将相应的ID传递给insertTheSmiley(input)方法。