Eu tenho um iframe que carrega um site de terceiros que é extremamente lento para carregar.
Existe uma maneira de exibir uma mensagem de carregamento enquanto o iframe carrega e o usuário não vê um grande espaço em branco?
PS. Observe que o iframe é para um site de terceiros, portanto, não posso modificar / injetar nada em sua página.
javascript
jquery
iframe
Jacob
fonte
fonte
Respostas:
Eu fiz a seguinte abordagem css:
fonte
Acho que este código vai ajudar:
JS:
HTML:
CSS:
fonte
#loadingMessage
quandoload
dispara, mas por que você também escondeready
? Não é muito cedo?addEventListener
equerySelector
+ astyle
propriedade s :-). Além disso, o autor da pergunta marcada é comojquery
. Não consegue entender porque foi sua mensagem? :-)Se for apenas um espaço reservado que você está tentando alcançar: uma abordagem maluca é injetar texto como um fundo SVG. Ele permite alguma flexibilidade e, pelo que li, o suporte do navegador deve ser bastante decente (embora não o testei):
html:
css:
O que você pode mudar?
Dentro do valor de fundo:
tamanho da fonte: procure por font-size = "" e altere o valor para o que quiser
cor da fonte: procure por fill = "" . Não se esqueça de substituir o # por% 23 se estiver usando a notação de cores hexadecimal. % 23 significa # na codificação de URL que é necessário para que a string svg possa ser analisada no FireFox.
família de fontes: procure font-family = "" lembre-se de deixar as aspas simples se você tiver uma fonte que consiste em várias palavras (como com \ 'Lucida Grande \')
text: procure o valor do elemento do text-element onde você vê a string PLACEHOLDER . Você pode substituir a string PLACEHOLDER por qualquer coisa que seja compatível com url (caracteres especiais precisam ser convertidos em notação de porcentagem)
Exemplo de violino
Prós:
Contras:
Eu só recomendaria isso apenas se for absolutamente necessário mostrar o texto como um espaço reservado em um iframe que requer um pouco de flexibilidade (vários idiomas, ...). Pare um pouco e reflita sobre isso: tudo isso é realmente necessário? Se eu tivesse escolha, escolheria o método de @Christina
fonte
fonte
Esta é uma solução rápida para a maioria dos casos:
CSS:
Você pode usar um GIF animado de carregamento se quiser,
HTML:
Usando o evento onload, você pode remover a imagem de carregamento depois que a página de origem for carregada em seu iframe.
Se você não estiver usando jQuery, apenas coloque um id no div e substitua esta parte do código:
por algo assim:
Muito bem sucedida!
fonte
Sim, você pode usar um div transparente posicionado sobre a área do iframe, com um gif do carregador como único plano de fundo.
Em seguida, você pode anexar um
onload
evento ao iframe:fonte
Eu segui a seguinte abordagem
Primeiro, adicione div irmão
e então quando o iframe terminar de carregar
fonte
fonte
Você pode usar como abaixo
fonte