iFrame не загружается при загрузке страницы (jQuery Mobile)
у меня возникли проблемы с получением iFrame для отображения в первый раз, когда загружается моя страница с поддержкой jQuery mobile.
у меня есть iframe следующим образом:
<iframe id="manual" src="pdf/manual.pdf" style="width: 100%; height: 100%;"></iframe>
и по какой-то причине, когда страница загружается, iFrame не загружается с ней. Я могу видеть только PDF-файл, если я обновить страницы. Почему так?
почему файл PDF не отображается в iframe, в первую очередь, без обновления страницы?
спасибо всех за понимание.
EDIT:
когда я пытаюсь открыть страницу с safari, я получаю следующее предупреждение:
Resource interpreted as Document but transferred with MIME type application/pdf.
может ли это иметь какое-то отношение к тому, почему PDF не загружается правильно?
2 ответов
Я просто попробовал с rel= "external" он работает без обновления.. Первая ссылка-вызов ajax, а вторая - нет. это было прямо вперед, не уверен, что я пропустил что-то еще у вас есть..
Страница 1.HTML-код
<!DOCTYPE html>
<html>
<head>
<title>Demo Page</title>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js"></script>
</head>
<body>
<div data-role="page">
<div data-role="header">
<h1>Demo Page</h1>
</div>
<div data-role="content">
<a href="page2.html" data-role="button">Another Page</a>
<a href="page2.html" rel="external" data-role="button">View User Manual</a>
</div>
</div>
</body>
</html>
Страница 2.HTML-код
<!DOCTYPE html>
<html>
<head>
<title>Another Page</title>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js"></script>
</head>
<body>
<div data-role="page" data-add-back-btn="true">
<iframe id="manual" src="FocusFree.pdf" style="width: 100%; height: 100%;"></iframe>
<div data-role="header" data-theme="none">
<h1>Another Page</h1>
</div>
<div data-role="content" data-theme="none">
<p>This is another page, dude.</p>
</div>
</div>
</body>
</html>
поскольку это вызов ajax, iframe должен быть закодирован по-другому. Проверьте этот сайт, есть некоторые решения... сайт
небольшое изменение кода на веб-сайте, чтобы открыть pdf.
Страница 1.HTML-код
<!DOCTYPE html>
<html>
<head>
<title>Demo Page</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js"></script>
<script type="text/javascript" src="js/main.js"></script>
</head>
<body>
<div data-role="page">
<div data-role="header">
<h1>Demo Page</h1>
</div><!-- /header -->
<div data-role="content">
<!-- this is a regular page call-->
<a href="page2.html" data-role="button">Another Page</a>
<!-- the functionality for this page is defined in "javascript.js" -->
<!-- we put it in a data attribute to avoid spiders spidering the link and hammering the device -->
<a href="#" id="perform-function" data-role="button" data-link="FocusFree.pdf">Perform Function</a>
</div><!-- /content -->
</div><!-- /page -->
</body>
</html>
Страница 2.HTML-код
<!DOCTYPE html>
<html>
<head>
<title>Another Page</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js"></script>
</head>
<body>
<div data-role="page" data-add-back-btn="true">
<div data-role="header">
<h1>Another Page</h1>
</div><!-- /header -->
<div data-role="content">
<p>This is another page, dude.</p>
</div><!-- /content -->
</div><!-- /page -->
</body>
</html>
main.js
$(document).ready(function(){
$('#perform-function').bind('click', function(){
// we're storing the link in an attribute
// called 'data-link':
var url = $(this).attr('data-link');
// create iframe if not there, comment display none to see it
if ($('#temp-iframe').length === 0) {
$('<iframe />').attr({
id: 'temp-iframe',
name: 'temp-iframe',
height: '100%',
width: '100%'
}).css({
position: 'absolute',
left: '50%',
bottom: 0
}).bind('load', function(){
}).appendTo('body');
}
// call the url into the iframe
$('#temp-iframe').attr('src', url);
// jquerymobile already does this because the link is just "#"
// but if you end up
return false;
});
});