Javascript 在Facebook上替换textarea内容是可行的,但表面上是可行的

Javascript 在Facebook上替换textarea内容是可行的,但表面上是可行的,javascript,jquery,facebook,replace,textarea,Javascript,Jquery,Facebook,Replace,Textarea,我正在尝试处理文本区[在“你的”Facebook页面上,人们可以在那里写状态更新等]中的文本,并用新文本替换它。 到目前为止我尝试的是:打电话 document.body.innerHTML.replace 或者像这样使用它: $('#'+textarea.id).focus(); $('#'+textarea.id).val(''); $('#'+textarea.id).sendkeys("replacement"); $('#'+textarea.id).sendkeys('{enter

我正在尝试处理文本区[在“你的”Facebook页面上,人们可以在那里写状态更新等]中的文本,并用新文本替换它。 到目前为止我尝试的是:打电话

document.body.innerHTML.replace
或者像这样使用它:

$('#'+textarea.id).focus();
$('#'+textarea.id).val('');
$('#'+textarea.id).sendkeys("replacement");
$('#'+textarea.id).sendkeys('{enter}');
$('#'+textarea.id).focus();
$('#'+textarea.id).trigger('keypress');
模拟输入文本区域。使用上述方法(或变体)会导致以下情况:

  • 文本区显示:“初始文本”(无论用户输入什么)
  • 用上述任一方法替换textarea内容
  • 文本区显示:“替换文本”
  • 按下“post”按钮
  • 发布的内容是:“初始文本”

但是,如果用户返回到textarea并添加任何字符(仅移动插入符号),则该过程会起作用(它也适用于其他更简单的textarea)。检查html表明有一些元素存储textarea所拥有的内容,但是获取textarea内容的机制却让我难以理解。我不知道这是否有什么不同,但它是chrome扩展内容脚本的一部分

为什么不使用官方FB api?@Cerbrus,因为我正在构建的扩展并非仅针对facebook,也因为该项目的很大一部分是它不会依赖任何其他服务/api。你依赖facebook发布东西,既然如此,为什么不在API中使用它们呢?(我的意思是,你说你不想,但为什么?你可以写一个函数,比如
fbPost(“text”)
使用它,并对您可能希望将文本发布到的其他站点执行相同操作。@Cerbrus显然能够针对所有textareas,而不是必须为不同类型的textareas编写不同的客户端,这大大减少了应用程序的面积,不是吗?@cyphunk,我真的不认为有必要为不同类型的textar编写不同的客户端eas.你只需点击一次,就可以将同一个textarea的内容发布到FB/Twitter/任何地方。