-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

相關問題