/ / мобільний сафарі білий фон - мобільний, кадр, сафарі

Мобільний Safari білий фон - мобільний, iframe, сафарі

Я створюю веб-програму виключно дляiPad / mobile-Safari. Домашня сторінка - це загальнодоступна сторінка HTML / CSS з 3 основними розділами. Але, натиснувши будь-яку з 3 основних кнопок, ви перейдете на сторінку, побудовану з 2 iFrames (одна зверху для Nav, одна знизу для Content).

Проблема полягала в тому, що перед будь-яким із цих 3завантажених сторінок було швидке спалах білого кольору, а потім сторінка завантажена Я спробував приховати стиль видимості iframe, а потім onLoad змінити його на "видимий", і це спрацювало. Але це спрацювало лише один раз, коли створена iFrame сторінка вперше завантажилася. Як тільки він завантажується, і я натискаю на посилання на цій сторінці, білий спалах повертається, тому що iFrame вже завантажився, тому його вже видно.

Я спробував очевидне, як додавання стилю css до iframe з кольором тла (також спробував вбудований стиль), але сталося те саме. Будь-які ідеї щодо того, як це вирішити? Дякую!

Відповіді:

1 для відповіді № 1

Ви можете зробити цей обман:

<iframe src="..." style="visibility:hidden;" onload="this.style.visibility="visible";"></iframe>

У вмісті ви можете охопити всі посилання та форми:

document.getElementsByTagName("a").addEventListener("click", function(e){
window.top.document.getElementsByTagName("iframe")[0].style.visibility = "hidden";
});

Поясніть:

  • Вперше ваш iframe прихований, і ви можете бачити фон головної сторінки (не білий iframe)
  • Після завантаження Javascript зробить iframe видимим, і ви зможете побачити вміст та фон iframe.
  • При натисканні на посилання всередині iframe запускається тригер, і Javascript знову приховує iframe.

Я зіткнувся з цією проблемою, і це цілий день намагався виправити, але я не можу, крім вищезазначеного. Ви можете вирішити цю проблему в Chrome, Firefox та інших браузерах, а не лише в Safari Mobile.


0 для відповіді № 2

Я думаю те саме з KimKha. Але "видимість" іноді не працює добре, тому я думаю, що краще використовувати "прозорість".

<iframe src="..." style="opacity:0;" onload="this.style.opacity=1;"></iframe>