Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过编程为Facebook搜索输入赋值,使其返回建议框_Javascript_Jquery_Facebook - Fatal编程技术网

Javascript 通过编程为Facebook搜索输入赋值,使其返回建议框

Javascript 通过编程为Facebook搜索输入赋值,使其返回建议框,javascript,jquery,facebook,Javascript,Jquery,Facebook,我试图通过编程给Facebook搜索一个值,它会刷新并打开建议框,就像用户输入的值一样 <div class="wrap"> <input type="hidden" autocomplete="off" class="hiddenInput" value="hello"> <div class="innerWrap"> <div class="_5861 navigationFocus textInput _5eaz" id="u_r

我试图通过编程给Facebook搜索一个值,它会刷新并打开建议框,就像用户输入的值一样

<div class="wrap">
  <input type="hidden" autocomplete="off" class="hiddenInput" value="hello">
  <div class="innerWrap">
     <div class="_5861 navigationFocus textInput _5eaz" id="u_r_2">
     <input type="text" class="_5eay" disabled="1" aria-hidden="1" value="XXXX"> 
     <input type="text" class="_1frb" name="q" value="hello" autocomplete="off" placeholder="Search Facebook" data-testid="search_input" role="combobox" aria-label="Search" aria-autocomplete="list" aria-expanded="false" aria-controls="typeahead_list_u_r_1" aria-activedescendant="js_ail"></div>
  </div>
</div>

我尝试使用
$0.setAttribute('value','hello')
在控制台中设置值,但它没有启动建议过程


有没有办法做到这一点?

试试execCommand。它会为你召集活动

Firs forcus输入框

$0.focus()
然后使用execCommand insertText

document.execCommand('insertText', undefined, "Hello")

唯一的问题是,只有当下拉菜单已经打开时,结果才会显示。我建议也弄清楚如何触发它。

也许他们会使用更改/单击事件。你试过触发它吗?我是这样尝试的:
$($0).trigger(jQuery.Event('keypress',{keyCode:71,which:13}))。你有什么建议吗?我的意思是只要在输入字段上执行.change()或.click(),这样当你开始在搜索框中键入内容时,它就会触发facebook所做的任何操作。
$($0)运气不佳。click()
$($0)。change()
::我被卡住了。非常感谢。在控制台中工作。如何在带有jQuery的脚本中执行此任务?假设我在一个名为input的变量中有input元素<代码>$(输入).focus()
然后呢?这是普通的javascript。不需要jQuery。如果已经聚焦元素,则只需运行第二行。此命令获取当前聚焦的元素,并尝试在其中插入文本字符串。通过这样做,它会自动调用Facebook正在使用的相关事件处理程序。(参见我上面发布的文档链接)。我还注意到调用
focus()
确实会打开下拉菜单,但只有在chrome开发工具关闭时才会打开。哦,对不起,我误解了你的问题。例如,您可能想做的是做一个扩展,并使用内容脚本将脚本注入页面。请注意,您也可以将jQuery注入页面,但我不推荐这样做。它将增加页面加载时间和
文档。querySelector
是一个很好的选择,因为它还支持css选择器。感谢您的回答。我实际上正在构建一个chrome扩展,并试图在内容脚本中实现这一点。我也已经注入了jQuery,所以一切正常。但是我不太明白在选择输入元素之后如何实现它。我无法执行:
$(input).execCommand('insertText',未定义,“Hello”)。实现这一目标的正确途径是什么?