用JavaScript在PC上预览网页在移动设备上的效果,怎么弄?

JavaScript021

用JavaScript在PC上预览网页在移动设备上的效果,怎么弄?,第1张

可以通过以下代码实现

<html>

<head>

<script language="JavaScript" src="jquery-1.11.3.min.js" type="text/javascript"></script>

<script language="JavaScript" type="text/JavaScript">

/**

弹出iframe页面(iframe后面会添加灰色蒙版)

**/

function showIframe(url){

 //添加背景遮罩

   $("<div id='YuFrameMobilePreviewBg' style='cursor:pointerwidth:100%height:100%background-color: Graydisplay:blockz-index:9998position:absoluteleft:0pxtop:0pxfilter:Alpha(Opacity=30)/* IE */-moz-opacity:0.4/* Moz + FF */opacity: 0.4 '/>").prependTo('body') 

    $("<div id='showMobilePreview'>" +

            "<div class='mobile_preview_header'><i class='mobile_preview_header_icon'></i></div>" +

            "<div class='mobile_preview_frame'><iframe id='YuFrameMobilePreview' name='YuFrameMobilePreview' ></iframe></div>" +

            "<div class='mobile_preview_footer'><i class='mobile_preview_footer_icon'></i></div>" +

        "</div>").prependTo('body')  

   

     $("#YuFrameMobilePreview").attr("src", url)  

 

    //点击背景遮罩移除iframe和背景

    $("#YuFrameMobilePreviewBg").click(function() {

        $("#showMobilePreview").remove()

        $("#YuFrameMobilePreviewBg").remove()

    })

}

</script>

<style type="text/css">

#showMobilePreview {

    z-index: 9999

    width: 387px

    height: 768px

    min-height: 396px

    max-height: calc(100vh - 64px)

    position: absolute

    left: 50%

    top: 50%

    transform: translate(-50%, -50%)

    opacity: 1

    text-align: center

        border-radius: 50px

    

        box-shadow:-10px 10px 30px #333333

}

.mobile_preview_header {

    display: block

    position: absolute

    top: 0

    left: 0

    height: 40px

    width: 387px

    background: #eeeff2

    text-align: center

    line-height: 40px

    border-top-right-radius: 50px

    border-top-left-radius: 50px

}

.mobile_preview_header_icon {

    display: inline-block

    width: 65px

    height: 10px

    background: #c8c9cc

    border-radius: 9px

    vertical-align: middle

    margin-top: 18px

}

.mobile_preview_frame {

    width: 375px

    min-height: 294px

    height: 667px

    max-height: calc(100vh - 166px)

    top: 40px

    left: 0

    border: 6px solid #eeeff2

    position: relative

    background-color: #fff

    display: block

}

#YuFrameMobilePreview {

    border: none

    width: 375px

    height: 100%

}

.mobile_preview_footer {

    display: block

    position: absolute

    bottom: 0

    left: 0

    height: 52px

    width: 387px

    background: #eeeff2

    text-align: center

    line-height: 45px

    border-bottom-right-radius: 50px

    border-bottom-left-radius: 50px

}

.mobile_preview_footer_icon {

    display: inline-block

    width: 43px

    height: 43px

    background: #c8c9cc

    border-radius: 50%

    vertical-align: middle

}

#mobilePreview{

 background: url("mobile-preview.png") no-repeat

 padding-left: 20px

 color: #bcbdc1

 }

#mobilePreview:hover{

  background: url("mobile-preview-hover.png") no-repeat

  padding-left: 20px

  color: #009ddc 

}

</style>

</head>

<body>

<input type="button" style="content: "\F17c"" onClick="showIframe('https://m.baidu.com')" value="加载"/>

<hr/>

<div >

 <span id="mobilePreview" onclick="showIframe('https://m.baidu.com')">手机预览</span>

</div>

</body>

<html>

最近修改公司vue项目中使用pdf.js来实现在线预览上传的各类文件.由于使用pdf.js在预览时是直接在标签内将src属性赋值为要请求的地址.这就导致一个问题,会直接请求服务器的文件路径地址,而这个服务器文件路径就会暴露出来。处于安全性考虑在预览请求时不再返回地址,改为通过调用普通接口,而是统一返回流(word,pdf)或者base64(jpg,png...)。.前端再进行解析并实现在线预览.

此时遇到第一个问题:

        这个请求是在插件中进行的无法携带项目中封装的各类请求头信息(token..等)。 翻看pdf.js源码及网上总结.发现一个底层方法 

         该方法可传一个对象作为参数,对象内可以添加url(所请求的接口),headers(请求头信息)等.... . 有了这个方法就好处理了.

         最后在将该方法当做变量赋值给pdf的src.大功告成.

         最后再补充一些 : @loaded="docLoaded" @page-loaded ="pageLoaded" 这两个方法为加载预览文件时的loading事件,

最后引一波示例,

用这个方法:varWordApp=newActiveXObject("Word.Application")//注:IE的ActiveX安全性能放开才行WordApp.Application.visible=falsevarDoc=WordApp.documents.open(path)//对word的操作见office的MSDNWordApp.quit()