;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Esse conteúdo é antigo

Forças dos EUA estão em alerta máximo para possíveis ataques do Irã

Manifestantes queimam as bandeiras de Israel e dos Estados Unidos durante o funeral do general irainano Qassim Suleimani, em Teerã - ATTA KENARE/AFP
Manifestantes queimam as bandeiras de Israel e dos Estados Unidos durante o funeral do general irainano Qassim Suleimani, em Teerã Imagem: ATTA KENARE/AFP

Do UOL, em São Paulo

07/01/2020 11h05

As forças dos Estados Unidos estão em alerta máximo no Oriente Médio para um possível ataque de drones iranianos durante a noite, segundo autoridades americanas citadas pela rede CNN.

"Havia indicações de que precisávamos monitorar as ameaças" ainda mais de perto do que já está sendo feito, disse uma autoridade, segundo a emissora. O segundo oficial disse que todas as forças estão em "alerta máximo" contra uma "ameaça iminente de ataque".

Embora as autoridades já estejam em alerta há vários dias, elas ficaram ainda mais vigilantes na noite ada, informaram as duas autoridades.

Com base em trabalhos de inteligência, os Estados Unidos monitoram possíveis ataques contra territórios no Iraque, Kuwait, Arábia Saudita, Emirados Árabes e Jordânia.

Ainda segundo a CNN, a inteligência observou que o Irã movimentou equipamentos militares, incluindo drones e mísseis balísticos nos últimos dias. Para as autoridades americanas isso pode significar um esforço iraniano para proteger suas armas diante de um possível ataque norte-americano ou colocá-las em posições para lançar seus próprios ataques.

"Ameaças existem há 40 anos", diz consultor da Casa Branca

Robert O'Brien, consultor de segurança nacional da Casa Branca, disse hoje à Fox & Friends que o governo está "atentamente" observando os acontecimentos no Irã e parece despreocupado com as recentes ameaças após o assassinato do general Qassim Suleimani.

"Essas ameaças existem há 40 anos", disse. Ele também disse que o presidente Donald Trump "deixou bem claro" que os Estados Unidos não permitirão que o Irã desenvolva armas nucleares e resumiu a política do país como "paz através da força".

O'Brien também comentou o fato de não permitir que o ministro das Relações Exteriores do Irã viaje a Nova York para uma reunião do Conselho de Segurança da Organização das Nações Unidas (ONU) na quinta-feira. Ele acusou Mohammad Javad Zarif de espalhar "propaganda" e acrescentou: "Acho que ele vai ficar bem sem essa reunião".