Сайт A: в разработке (PHP) Сайт B: http://www.apprenticesearch.com/
Я хочу включить окно ввода на сайт A; после ввода запроса и нажатия Enter, откройте новую вкладку, чтобы отобразить результаты поиска B. Это было бы так, как если бы я набрал поисковый запрос в B напрямую.
Например, я искал «тестирование» и проверял результат поиска из B, я вижу следующее. Как передать запрос с сайта A на B?
<div id="search"> <form action="/Resources/SiteSearch" id="siteSearchForm" method="post"> <label for="search-box"> SEARCH</label> <div id="search-box-wrapper"> <input type="text" id="search-box"> </div> <input id="searchText" name="searchText" type="hidden" value="testing"><input id="siteSearchUrl" name="siteSearchUrl" type="hidden" value="http://yboss.yahooapis.com/ysearch/limitedweb?format=xml&sites=www.apprenticesearch.com&q=testing"> <input type="image" src="/userfiles/images/E/buttons/go.png" id="search-button" value="GO" siteurl="www.apprenticesearch.com"><!-- www.apprenticesearch.com --> </form> </div>
Все, что вам нужно сделать, это указать target = "_ blank" в форме на сайте A, а также способ, которым запрос работает на сайте B, должен быть включен вход siteSearchUrl
<form id="apprenticeForm" action="http://www.apprenticesearch.com/Resources/SiteSearch" method="POST" target="_blank" onsubmit='submitSearch()'> <input type="text" name="searchText" id="searchText" value=""/> <input type="submit" value="Submit"/> <input id="siteSearchUrl" name="siteSearchUrl" type="hidden" value="http://yboss.yahooapis.com/ysearch/limitedweb?format=xml&sites=www.apprenticesearch.com&q="/> </form>
Как это http://jsfiddle.net/MVBLc/
После игры с отправкой формы, но параметр q, который не читается на сайте B, я считаю, что это связано с тем, что входной сигнал ускользнул &
вместо '&'.
Я обновил HTML, и вот javascript, чтобы обновить поле перед отправкой формы
function submitSearch() { q = document.getElementById("searchText").value; document.getElementById("siteSearchUrl").value = 'http://yboss.yahooapis.com/ysearch/limitedweb?format=xml&sites=www.apprenticesearch.com&q=' + q; return true; }
демонстрация
Причина, по которой вам нужно использовать javascript для дополнительного ввода, является той же причиной, почему сайт B использует javascript для заполнения siteSearchUrl в своем скрипте перед отправкой запроса.
Посмотрите, как работает сервер: сайт B отправляет этот запрос в / Resources / SiteSearch, где SiteSearch(String searchtext, String siteSearchUrl)
на их сервере. Если бы вы просто пошли прямо на эту страницу без параметров сообщений, вы обнаружите, что System.ArgumentNullException Parameter name: uriString
для того, чтобы с сайта не был установлен siteSearchUrl.
Если вы хотите проанализировать параметры siteSearchUrl:
yboss.yahooapis.com
предназначен для службы BOSS API Yahoo sites
указывает API, какой сайт искать и отображать в результатах q
– это то, что запрос для поиска