2016-02-09 2 views
9

У меня возникла проблема с программой просмотра документов Google, которая вызывает кошмар, потому что это происходит только с перерывами. Я ищу инструкции о том, как сделать контент в загрузке iframe каждый раз без проблем.Google Docs Viewer иногда не загружает контент в iframe

Действия по воспроизведению 1) Эта страница является основной HTML-страницу с тега h1 и фрейма, содержащего ссылку на PDF на том же сервере

http://bit.ly/1mqbuf7

2) При загрузке страницы , документ pdf будет загружаться в iframe в 60% случаев.

3) Если вы нажмете обновление 10 или около того раз, по крайней мере, один раз он не появится. Сначала Google возвращает 307 (что он также делает, когда он работает), а затем возвращает 204 - нет содержимого. Когда он работает, он возвращает 200, с содержимым, которое вы видите в средстве просмотра.

Я изо всех сил пытаюсь понять, почему это происходит только некоторое время без видимых ошибок. Это было протестировано и не выполнено в Google Chrome v 48.0.2564.103 (ПК) и в Internet Explorer Edge v25.10586 (ПК) с теми же результатами и частотой сбоев.

Любое руководство будет принята с благодарностью.

+1

Выполнение подобных задач только сегодня. Написал новый вопрос: http://stackoverflow.com/questions/40414039/google-docs-viewer-returning-204-responses-no-longer-working-alternatives –

+0

Тот же вопрос для меня. Невероятная ошибка. Пробовал все без успеха. – Garavani

ответ

0

Я считаю, что ваша проблема возникает из-за тайм-аута, который имеет документы. По существу, если загрузка занимает слишком много времени, она останавливается и дает вам ошибку. Почему он загружает 60% файла, а затем останавливается за мной. Попробуйте уменьшить длину iframe пополам и посмотреть, не исчезнет ли проблема, если это не так, я свяжусь с google и спрошу их об этом.

0

Это не исправление вашей проблемы как таковой, но поскольку у меня была такая же проблема, и в итоге мне удалось найти приемлемое решение, я подумал, что поделюсь ею.

var $docViewer = $(`<iframe src="${newValue}" height="100%" width="100%"></iframe>`); 
//If using modern browser, use and embed object 
if (window.chrome || typeof (window.mozInnerScreenX) != "undefined") 
    $docViewer = $(`<object width="100%" height="100%" data="${newValue}" type="application/pdf"> 
        <embed src="${newValue}" type="application/pdf"> 
         <p>This browser does not support PDFs.Please download the PDF to view it: <a href="${newValue}">Download PDF</a>.</p> 
        </embed> 
       </object>`); 
//Add the new viewer 
$docViewer.appendTo($("#invoicePreview")); 

В принципе, использовать embed если современный браузер, и если бы не gviewer. Объект embed ведет себя точно в google doc viewer, он работает в 100% случаев (без сбоев), но поскольку он не поддерживается для IE и/или мобильных устройств младшего класса, используйте средство просмотра google doc для этого ... По-видимому, прогрессивные улучшения.

Смежные вопросы