繁体   English   中英

单击链接,将文本添加到textarea?

[英]Click on link, add text to textarea?

假设我有这个javascript:

<script language="javascript" type="text/javascript">
function addtext() {
    var newtext = document.myform.inputtext.value;
    document.myform.description.value += newtext;
}
</script>

并且我想启用它,因此我可以单击一些显示“添加文本”的html链接,并且我希望文本为@。 $ username。 (使用PHP插入用户名)。 因此,当您单击“添加文本”链接时,它将被放入textarea @username中。 很难想象,我不确定确切地将文本和PHP放在哪里。 谢谢!

文字区域:

    <form Name ="myform" action="<?$posted = $_POST['description'];
    $object->post_tweet($posted); ?>" method="post">
    <table align="left" border="0" cellspacing="1" cellpadding="5">
      <tr>

        <td class="2">
     <textarea name='description' class="color" COLS=84 ROWS=2 type="text" id="eBann" name="bannerURL" maxlength="100" size="60" onKeyUp="toCount('eBann','sBann','{CHAR} characters left',140);"></textarea>
    <br>
      <span id="sBann" class="minitext">140 characters left.</span>
    </td>
  </tr>
</table><BR><BR><BR>
<p><input type='submit' value='Tweet!' /><input type='hidden' value='1' name='submitted' /> </p>
</form> 

这是我想对链接进行的操作:

<a href="#" onclick="addtext("@'. $twit->user->screen_name .'"); return false>reply</a>'

但是,这给了我一个错误(我也添加了addtext函数)。

编辑:知道了! 我有'和'的错误,哈哈哇,愚蠢的错误。谢谢大家!

哦,艰难的一个。 这是HTML,JavaScript和PHP的完美融合,不是吗?

<script language="javascript" type="text/javascript">
function addtext(text) {
    document.myform.description.value += text;
}
</script>

...

<a href="#" onclick="addtext('@<?php echo htmlspecialchars(addslashes($userName)) ?>'); return false"
  >reply</a>

让我们分解一下:假装$userName"TeaCast" 然后执行<?php ?>部分后将发送到浏览器的HTML看起来像:

<a href="#" onclick="addtext('@TeaCast'); return false"
  >reply</a>

啊!

附加条款:

  • href="#"设置了一个伪造的链接,该链接为您提供了手形光标,但没有执行任何操作。
  • PHP代码中的addslashes()在任何引号之前都加了一个反斜杠。
  • htmlspecialchars()调用可确保包含'<''&''<'奇怪字符的用户名不会弄乱您的页面。 假设某个邪恶的用户将自己命名为"<script>alert('haha')</script>" (是的,他们的用户名是HTML的代码段)。

John的答案很好用,但是您可以做的另一种选择是将用户名存储在javascript中,例如:

<script language="javascript" type="text/javascript">
var username = '<?php echo htmlspecialchars(addslashes($userName)) ?>';

function addtusername() {
    document.myform.description.value += "@" + username;
}
</script>

...

<a href="#" onclick="addusername(); return false">reply</a>

这样,您可以稍后在Javascript中将变量username用于其他功能,而不是使用一堆php。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM