-2

我想模拟搜索当前选项卡网址的其中一个查询参数,并返回生成的网页的内容。我怎么做?谷歌浏览器扩展程序:如何在后台模拟用户操作?

例如,如果用户是http://www.quora.com/JavaScript/Why-is-function-an-object-in-Javascript 我想模拟用户搜索在Quora上“的JavaScript”,并获得所产生的网页http://www.quora.com/JavaScript(包括AJAX填充数据)的内容。

我可以在服务器上使用casper.js,但这会增加延迟。我更愿意在客户端上模拟它。

+0

编辑以澄清使用情况。 – tldr

回答

1

你去http://www.google.com/cse/然后创建一个自定义搜索引擎 你哈瓦2个代码: 为形式的搜索:

<script type="text/javascript" src="http://www.google.com/jsapi"></script> 
<script type="text/javascript"> 
    google.load('search', '1'); 
    google.setOnLoadCallback(function() { 
    google.search.CustomSearchControl.attachAutoCompletion(
     '006309227296184785814:f9bcc86z5hm', 
     document.getElementById('q'), 
     'cse-search-box'); 
    }); 
</script> 
<form action="" id="cse-search-box"> 
    <div> 
    <input type="hidden" name="cx" value="006309227296184785814:f9bcc86z5hm" /> 
    <input type="hidden" name="cof" value="FORID:10" /> 
    <input type="hidden" name="ie" value="UTF-8" /> 
    <input type="text" name="q" id="q" autocomplete="off" size="30" onKeyPress="return SubmitOnEnter(this,event)" /> 
    <input type="submit" class="tim" name="sa" value="Search" onclick="SearchSite();" /> 
    </div> 
</form> 
<script type="text/javascript" src="http://www.google.com/cse/brand?form=cse-search-box&lang=en"></script> 

Create function for search: 

function URLEncode (clearString) { 
     var output = ''; 
     var x = 0; 
     clearString = clearString.toString(); 
     var regex = /(^[a-zA-Z0-9_.]*)/; 
     while (x < clearString.length) { 
     var match = regex.exec(clearString.substr(x)); 
     if (match != null && match.length > 1 && match[1] != '') { 
      output += match[1]; 
      x += match[1].length; 
     } else { 
      if (clearString[x] == ' ') 
      output += '+'; 
      else { 
      var charCode = clearString.charCodeAt(x); 
      var hexVal = charCode.toString(16); 
      output += '%' + (hexVal.length < 2 ? '0' : '') + hexVal.toUpperCase(); 
      } 
      x++; 
     } 
     } 
     return output; 
    } 

function SubmitOnEnter(myfield, e) 
{ 
    var keycode; 
    if (window.event) 
     keycode = window.event.keyCode; 
    else if (e) 
     keycode = e.which; 
    else 
     return true; 
    if (keycode == 13) 
    { 
     SearchSite(); 
     return false; 
    } 
    else 
     return true; 
} 
function SearchSite() 
{ 
    document.location.href='search_result.aspx?cx=006309227296184785814:f9bcc86z5hm&cof=FORID%3A11&ie=UTF-8&q=' + URLEncode(document.getElementById('q').value) + '&sa=Search'; 
} 

然后创建页面:search_result.aspx

<div id="cse-search-results"></div> 
<script type="text/javascript"> 
    var googleSearchIframeName = "cse-search-results"; 
    var googleSearchFormName = "cse-search-box"; 
    var googleSearchFrameWidth = 600; 
    var googleSearchDomain = "www.google.com"; 
    var googleSearchPath = "/cse"; 
</script> 
<script type="text/javascript" src="http://www.google.com/afsonline/show_afs_search.js"></script> 
+0

感谢您的回答。我希望搜索可以在不同的来源完成,其中一些可能没有API。我已经更新了这个问题来反映这一点。 – tldr

相关问题