<b><!DOCTYPE html></b>
<b><! —</b>
<b>Это модуль поиска на сайте Twitter. Модуль можно подключить к любой странице внутри элемента <iframe> и запросить его выполнить поиск, отправив ему строку запроса с помощью метода postMessage(). Поскольку модуль подключается в элементе <iframe>, а не <script>, он не сможет получить доступ к содержимому вмещающего документа.</b>
<b>--></b>
<b><html></b>
<b><head></b>
<b> <style>body { font: 9pt sans-serif: }</style></b>
<b> <!-- Подключить библиотеку jQuery ради ее утилиты jQuery.getJSON() --></b>
<b> <script src="</b><a href="http://code.jquery.com/jquery-1.4.4.min.js%22/%3e%3c/script"><b>http://code.jquery.com/jquery-1.4.4.min.js"/></script</b></a><b>></b>
<b> <script></b>
<b> // Можно было бы просто использовать свойство window.onmessage,</b>
<b> // но некоторые старые броузеры (такие как Firefox 3) не поддерживают его,</b>
<b> // поэтому обработчик устанавливается таким способом,</b>
<b> if (window.addEventListener)</b>
<b> window.addEventListener("message", handleMessage, false);</b>
<b> else</b>
<b> window.attachEvent("onmessage", handleMessage); // Для IE8</b>
<b> function handleMessage(e) {</b>
<b> // Нас не волнует происхождение документа, отправившего сообщение:</b>
<b> // мы готовы выполнить поиск на сайте Twitter для любой страницы.</b>
<b> // Однако сообщение должно поступить от окна, вмещающего этот модуль,</b>
<b> if (е.source !== window.parent) return;</b>
<b> var searchterm = e.data; // Это фраза, которую требуется отыскать</b>
<b> // С помощью утилит поддержки Ajax из библиотеки jQuery и прикладного</b>
<b> // интерфейса Twitter отыскать сообщения, соответствующие фразе.</b>
<b> jQuery.getJS0N("</b><a href="http://search.twitter.com/search.json?callback="><b>http://search.twitter.com/search.json?callback=</b></a><b>?",</b>
<b> { q: searchterm },</b>
<b> function(data) { // Вызывается с результатами запроса</b>
<b> var tweets = data.results;</b>
<b> // Создать HTML-документ для отображения результатов</b>
<b> var escaped = searchterm.replace("<", "<”);</b>
<b> var html = "<h2>" + escaped + "</h2>";</b>
<b> if (tweets.length == 0) {</b>
<b> html += "No tweets found";</b>
<b> }</b>
<b> else {</b>
<b> html += "<dl>"; // <dl> list of</b>
<b> results</b>
<b> for(var і = 0; і < tweets.length; i++) {</b>
<b> var tweet = tweets[i];</b>
<b> var text = tweet.text;</b>
<b> var from = tweet.from_user;</b>
<b> var tweeturl = "</b><a href="http://twitter.eom/#!/"><b>http://twitter.eom/#!/</b></a><b>" + from +</b>
<b> "/status/" + tweet.id_str;</b>
<b> html += "<dt><a target='_blank‘ href="' +</b>
<b> tweeturl + "'>" + tweet.from_user +</b>
<b> "</a></dt><dd>" + tweet.text + "</dd>";</b>
<b> }</b>
<b> html += "</dl>";</b>
<b> }</b>
<b> // Вставить документ в <iframe></b>
<b> document.body.innerHTML = html;</b>
<b> });</b>
<b> }</b>
<b> $(function() {</b>
<b> // Сообщить вмещающему документу, что модуль готов к поиску. Вмещающий документ</b>
<b> // не может отправлять модулю сообщения до получения этого сообщения, потому что</b>
<b> // модуль еще не готов принимать сообщения. Вмещающий документ может просто</b>