使用Jquery的模态PDF IFRAME

时间:2012-09-28 15:08:05

标签: jquery pdf iframe modal-dialog

所以这是我的脚本,完美运行,没问题。现在为什么我在这里发布这个,大多数情况下我可以增强它并使它更好也我想这可以来帮助别人! JQUERY!这是一个工作样本http://jsfiddle.net/cornelas/4eUgf/2/

    $(document).ready(function() {
        $('.select').click(function () {
        $('.pdf_grey').fadeIn('slow');
        $('.select').hide();
        $('.deselect').show();
   });
     $('.deselect').click(function() {
        $('.pdf_grey').fadeOut('slow');
        $('.select').show();
        $('.deselect').hide();
    });
        $('.pdf_grey').css({'opacity' : 0.8});
    });
    $(document).mouseup(function (e)
{
    var container = $(".pdf_grey");
var deselect = $(".deselect");
var select = $(".select");

    if (container.has(e.target).length === 0)
    {
        container.hide();
       deselect.hide();
       select.show();
    }
});

这是我的HTML                     

站点手册

PreviewMinimize |下载     

<div class="pdf_grey">
<span class="deselect top_inf"><h3>Close<h3></span><br>
<iframe id="manual" style="border:1px solid #666CCC" title=" Manual" src="Images/pdf/UserMaual.pdf" frameborder="1" scrolling="auto" height="600" width="850" ></iframe>
</div>
</div>  
</div>

AND CSS终于

.pdf_grey {
position: absolute;
left: 500px;
top: 100px;
display: none;
padding: 25px;
background: #333;
}
.deselect {
    display: none;
    cursor: pointer;
}
.select {
    cursor: pointer;
    color: #666;

}
.select:hover {
    color: red;

}

如果您注意到我编写了此脚本,它将专门定位类PDF灰色并且它将显示设置为隐藏的类,则div包含加载PDF的Iframe。我认为在不更改页面的情况下加载pdf非常简单。现在..百万美元的问题,我如何制作这个如果有任何类的pdf它将加载它隐藏的内容。你可以看到,我不想在设置课程时发疯。我想在ahref或我们必须设置一个加载Iframe的类。谢谢大家的帮助,我会发布我的脚本,当它与任何帮助命名的人完成时,我看到的所有模态都是蹩脚的,而不是那么敏感。

2 个答案:

答案 0 :(得分:0)

您需要查看提供源URL的.load函数。您需要做的就是找出一种方法将源保存为变量并将其修补到加载函数中。如果您点击缩略图,那么: 然后每当点击.pdf时,首先保存src:var src = $(this).parent('a')。attr('src'); 然后你可以使用.load并使用src变量来定位iframe。在查看.load的API文档时,它应该变得非常清楚。关于将ifs加载到iframe中的一些事项: iframe用于外部html文档,而object标签用于外部文件,如flash,PDF,video等。您可能需要查看对象标记。

iframe很难设置任何错误处理,因此如果您的PDF没有加载,显示错误可能非常困难。有一些解决方法,但我没有看到它们是好的,他们主要依靠设置计时器来查看iframe是否已加载,并且某些站点/ pdf可能需要很长时间才能加载导致错误。

由于浏览器需要插件,Pdfs很难处理。那些没有安装PDF阅读器的用户呢,在这种情况下再也无法进行错误检查。

答案 1 :(得分:0)

请参阅此处的示例http://jsfiddle.net/cornelas/4eUgf/4/现在,iframe基于链接,而不是显示加载页面的iframe的链接!

    $(document).ready(function() {
        $("a.select").live('click', function (e) {
           e.preventDefault();
           var href = this.href;
          $("#manual").attr("src", href);
        });
    $('.full').css({'opacity' : .7});

    $('.select').click(function () {
        $('.pdf_grey').fadeIn('slow');
        $('.full').fadeIn('slow');
        $('.select').hide();
        $('.deselect').show();
    });
    $('.deselect').click(function() {
        $('.pdf_grey').fadeOut('slow');
        $('.full').fadeOut('slow');
        $('.select').show();
        $('.deselect').hide();
    });

    });
    $(document).mouseup(function (e)
{
    var container = $(".pdf_grey");
    var bkg = $(".full");
    var deselect = $(".deselect");
    var select = $(".select");

    if (container.has(e.target).length === 0)
    {
        container.hide();
        deselect.hide();
        select.show();
        bkg.hide();
    }
});


    <div class="full">
    <div class="pdf_grey">
    <span class="deselect top_inf"><h3>Close<h3></span><br>
    <iframe id="manual" style="border:1px solid #666CCC" title=" Manual" src="" frameborder="1" scrolling="auto" height="600" width="850" ></iframe>
    </div>
    </div>
    <div id="wrapper">
    <p class="1">
    <h3>Site Manual</h3><a href="http://www.ntxmsk.com/pdf/nwpt.pdf#zoom=100" class="select">Preview</span><span class="deselect">Minimize</span> | <a href="Images/pdf/Site_Help_Manual_2012.zip">Download</a><br>
        </p>
    <p class="2">
    <h3>Site Manual</h3><a href="http://www.ntxmsk.com/pdf/HIPPA.pdf#zoom=100" class="select">Preview</span><span class="deselect">Minimize</span> | <a href="Images/pdf/Site_Help_Manual_2012.zip">Download</a>
        </p>
    <div class="topdiv">

    </div>    
    </div>

        body {
        padding:0px;
        margin: 0px;
        }
        .full {
        background: #000;
         width: 100%;
    height: 100%;
    position: absolute;
    z-index: 5;
    display: none;
    }
    .red {
    background: red;
    width: 10%;
    height: 25%;
    }
    .pdf_grey {
    position: absolute;
    left: 25%;
    top: 15%;
    display: none;
    padding: 25px;
    background: #333;

    }
    .deselect {
        display: none;
        cursor: pointer;
    }
        .select {
        cursor: pointer;
        color: #666;

    }
    .select:hover {
        color: red;

    }