我有以下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>
答案 0 :(得分:0)
首先,为每个textarea提供不同的ID ..两者具有相同的ID是坏的。
其次,当调用函数时,传递所需textarea的ID:
href="javascript:insertTheSmiley(':)', 'MySecondTextarea');void(0)"
最后在函数insertTheSmiley
中更改代码以从函数参数中获取ID而不是现在的方式 - 如果需要帮助,请发布函数代码。
答案 1 :(得分:0)
您的textareas必须有不同的ID。您可以将相应的ID传递给insertTheSmiley(input)
方法。