Показать сообщение отдельно
Старый 04.09.2013, 18:14   #3
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Воровской тред

Вот жеж зажало в попе..

Наметал то же самое на JS: http://files.moka.co/getGooglePic.html
По стандарту ищет "blitz3d", но можно и что угодно: http://files.moka.co/getGooglePic.html?forest

Да и http://ajax.googleapis.com/ajax/services/search/images - deprecated, и нужно юзать новый поиск.

Юзается так:
loadImage('blitz3d', {
  
color'blue',
  
size'medium'
}, function(errurl) {
  if (!
err) {
    
// url - ссылка на файл
  
} else {
    
// err - объект с ошибкой
  
}
}); 
Код:
<body>
  <
img id='test' />
  <
div id='error'></div>
</
body>

<
script>
  var 
colors = [ 'black''blue''brown''gray''green''orange''pink''purple''red''teal''white''yellow' ];

  var 
callbacks = { };
  var 
callbacksCounter 0;

  var 
query 'blitz3d';
  if (
location.search && location.search.length 0) {
    
query location.search.substr(1);
  }

  
loadImage(query, {
    
colorcolors[Math.floor(Math.random() * colors.length)],
    
size'medium',
    
skipMath.floor(Math.random() * 8)
  }, function(
errurl) {
    if (!
err) {
      
document.getElementById('test').src url;
    } else {
      
document.getElementById('error').innerHTML JSON.stringify(err);
    }
  });

  function 
loadImage(queryoptionsfn) {
    if (
fn) {
      var 
callbackId = ++callbacksCounter;
      
callbacks[callbackId] = fn;

      var 
url 'http://ajax.googleapis.com/ajax/services/search/images?v=1.0&q=' query '&rsz=1&callback=imageLoaded&context=' callbackId;
      if (
options) {
        if (
options.colorurl += '&imgcolor=' options.color;
        if (
options.size)  url += '&imgsz=' options.size;
        if (
options.type)  url += '&imgtype=' options.type;
        if (
options.skip)  url += '&start=' options.skip;
      }

      var 
script document.createElement('script');
      
script.onerror = function() {
        
delete callbacks[callbackId];
        
fn({ errortruemessage'could make a jsonp request' });
      }

      
script.src url;
      
document.body.appendChild(script);
    }
  }
  function 
imageLoaded(contextdatastatusmessage) {
    if (
callbacks[context]) {
      if (
data && data.results && data.results.length == && data.results[0].unescapedUrl) {
        
callbacks[context](nulldata.results[0].unescapedUrl);
      } else {
        
callbacks[context]({ errortruecodestatusmessagemessage });
      }
      
delete callbacks[context];
    }
  }
</script> 
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо moka за это полезное сообщение:
Gector (04.09.2013), LLI.T.A.L.K.E.R. (04.09.2013)