帖子
帖子
用户
博客
课程
12下一页
返回列表 发新帖
显示全部楼层
7
帖子
0
勋章
32
Y币
发表于 2016-8-19 10:28:43
4
已解决

求高手给解决图标打开是外部链接的问题。 [复制链接]

  • 发表于:2016-08-19 10:28:43
本帖最后由 我是帮主 于 2016-8-19 10:31 编辑

我的初级界面是这样的。这下面的每个按钮打开都是一个外部链接,现在用的是OpenNewWin。但是打开太慢了,听论坛里的高手说最好用OpenFrame这个语法,但是楼主是个从web刚进来的小白。不是太懂啊。有没有高手给个思路,我把代码贴出来。如果解决了,再给50元支付宝红包。谢谢!!!

143679410419246332.jpg

上面这个图片的代码是:

  1. <!doctype html>
  2. <html>
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
  6.     <title>Hello APP</title>
  7.     <link rel="stylesheet" type="text/css" href="../css/api.css" />
  8.     <link rel="stylesheet" type="text/css" href="../css/common.css" />


  9.     <style>
  10.         html,body{height:100%;background-color: #eee;margin-top:14px;}
  11.         .h10 {height: 10px;}

  12.         /* 头部导航样式 */


  13.         .swiper-slide img {width: 100%;}


  14.         /* 两列样式 */
  15.         .row {display: -webkit-box;display: -webkit-flex;}
  16.         .col {-webkit-box-flex:1; -webkit-flex:1; flex:1;}
  17.         .section2 .col {background-color: #fff;}
  18.         .section2 .col{border-bottom: 1px solid #d2d2d2;border-right: 1px solid #d2d2d2;}
  19.         .section2 .col:last-child {border-bottom: 1px solid #d2d2d2;}
  20.         .section2 h4{margin:15px 5px 5px 10px;border-bottom:2px solid #2768BA;}
  21.         /* 条目总体样式 */
  22.         .item {display: table; height: 70px; width: 100%;}
  23.         .item .itemlogo , .item .itemshelf {display: table-cell; vertical-align: middle;}

  24.         .item .itemlogo {width: 25%;}
  25.         .item .itemlogo img  {width: auto;}

  26.         /* 条目特例 */
  27.         .shelf2 .userlogo img {width: 90px;}
  28.         

  29.         /* 悬浮样式 */
  30.         .itemhover {background-color: #eee !important;}
  31.         .headerhover {background-color: #36A8DC;}
  32.                 .swipe { overflow: hidden; visibility: hidden; position: relative; background: #fff; padding-bottom: 1px;}
  33.         .swipe-wrap { overflow: hidden; position: relative; }
  34.         .swipe-wrap .swipe-box { float: left; width: 100%; position: relative; }
  35.         .swipe-wrap .swipe-box img {width: 100%;}

  36.     </style>
  37. </head>
  38. <body>
  39.    <!--
  40.     <div id='slider' class='swipe'>
  41.         <div class='swipe-wrap'>
  42.             <div class="swipe-box">
  43.                 <img src="../image/firstcover01.png" alt="">
  44.             </div>
  45.             <div class="swipe-box">
  46.                 <img src="../image/firstcover02.png" alt="">
  47.             </div>
  48.             <div class="swipe-box">
  49.                 <img src="../image/firstcover03.png" alt="">
  50.             </div>
  51.         </div>
  52.     </div>
  53.   -->  
  54.    
  55. <!--图标集合-->

  56. <div class="header" id="topbar">
  57. <div class="center menu">
  58.         
  59.         <ul>
  60.         <li><a onClick="openNewWin('wangdai')">网贷</a></li>
  61.         <li><a onClick="openNewWin('kuaika')">快卡</a></li>
  62.         <li><a onClick="openNewWin('tie')">提额</a></li>
  63.         <li><a onClick="openNewWin('tool')">工具</a></li>
  64.         
  65.         </ul>
  66.         
  67.            
  68.         </div>

  69. </div>

  70. <div class="section2">   <h4>实用工具</h4></div>
  71.     <div class="row section2" style="height:auto;">
  72.         <div class="col">
  73.            <div class="item shelf2" tapmode="itemhover" onClick="openNewWin('to1')">
  74.                 <div class="itemlogo userlogo"><img src="../image/kk/20.png" alt=""></div>
  75.                
  76.             </div>
  77.         </div>
  78.        <div class="col">
  79.             <div class="item shelf2" tapmode="itemhover" onClick="openNewWin('to2')">
  80.                 <div class="itemlogo userlogo"><img src="../image/kk/21.png" alt=""></div>
  81.                
  82.             </div>
  83.         </div>
  84.         <div class="col">
  85.             <div class="item shelf2" tapmode="itemhover" onClick="openNewWin('to3')">
  86.                 <div class="itemlogo userlogo"><img src="../image/kk/22.png" alt=""></div>
  87.                
  88.             </div>
  89.         </div>
  90.         <div class="col">
  91.             <div class="item shelf2" tapmode="itemhover" onClick="openNewWin('to4')">
  92.                 <div class="itemlogo userlogo"><img src="../image/kk/23.png" alt=""></div>
  93.                
  94.             </div>
  95.         </div>
  96.         
  97.     </div>

  98.         <!-end->
  99.     </div>
  100.    
  101.    

  102.     <!-- 第三部分 -->
  103.     <!-- 如何复用listitem,1.最简单的样式不变,直接复制  2.复制以后修改其中某一行的样式,最外层用div包裹给予新class,即可隔离原有的样式 -->
  104.     <div class="h10"></div>

  105. </body>
  106. <script type="text/javascript" src="../script/api.js"></script>
  107. <script type="text/javascript" src="../script/swipe.js"></script>
  108. <script type="text/javascript">

  109.     function openNewWin (type) {
  110.         api.openWin ({
  111.             name: type,
  112.             url: './'+type+'.html',
  113.             rect:{
  114.                 x:0,
  115.                 y:0,
  116.                 w:'auto',
  117.                 h:'auto'
  118.             },
  119.             bounces: false,
  120.             delay:200
  121.         });
  122.     }

  123.     apiready = function  () {

  124.             var slider =  Swipe( $api.dom('#slider'), {
  125.                 auto: 3000,
  126.                 continuous: true,
  127.             });
  128.         // 暂时关闭下拉刷新
  129.         // 在ios 7.0.6下面又出现左右移动问题
  130.         // api.setRefreshHeaderInfo({
  131.         //     visible: true,
  132.         //     bgColor: 'rgba(0,0,0,0)',
  133.         //     textColor: '#666',
  134.         //     textDown: '下拉刷新',
  135.         //     textUp: '释放刷新'  
  136.         // }, function(ret, err){
  137.         //     loadData();
  138.         // });
  139.     }
  140.    
  141.     function loadData(){
  142.         api.refreshHeaderLoadDone();
  143.         
  144.     }
  145.       
  146.    
  147.    
  148.    
  149. </script>
  150. </html>
复制代码
然后拿第一个举例说明,第一个调用的是to1.....那么对应的就是to1.html这个页面。这个to1.html页面的代码为:

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.         <meta charset="utf-8">
  5.     <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/>
  6.     <title>title</title>
  7.     <link rel="stylesheet" type="text/css" href="../css/api.css"/>
  8.     <style>
  9.             body{
  10.                     
  11.             }
  12.     </style>
  13. </head>
  14. <body>

  15. <iframe src="http://www**.**/wap/" width="100%" height="1080"></iframe>      
  16.         
  17. </body>
  18. <script type="text/javascript" src="../script/api.js"></script>
  19. <script type="text/javascript">
  20.         apiready = function(){
  21.                
  22.         };
  23. </script>
  24. </html>
复制代码


无邪
22
帖子
3
勋章
5045
Y币
最佳答案
放在apiready = function(){}里
22
帖子
3
勋章
5045
Y币
我是帮主 发表于 2016-8-19 10:55
同步了,报错了。报的是    api is not defined at .......   就是api.openFrame ({   这一行    报错了 ...

放在apiready = function(){}里
22
帖子
3
勋章
5045
Y币
可以改造下to*.html页面,用openframe打开外部网站,不要用iframe框架引入。
1
帖子
0
勋章
3993
Y币
function openNewWin (type) {
        api.openFrame({
            name: type,
            url: './'+type+'.html',
            rect:{
                x:0,
                y:0,
                w:'auto',
                h:'auto'
            },
            bounces: false,
            delay:200
        });
    }
22
帖子
3
勋章
5045
Y币
api.openFrame ({   
            name: 'to1',  
            url: 'http://www**.**/wap/',  
            rect:{  
                x:0,   
                y: 0,   
                w:'auto',   
                h:'auto'   
            },  
            bounces: false,
            delay:200   
        });
7
帖子
0
勋章
32
Y币
无邪 发表于 2016-8-19 10:34
api.openFrame ({   
            name: 'to1',  
            url: 'http://www**.**/wap/',  

不用调用是吧。。。直接用js就可以是吧
22
帖子
3
勋章
5045
Y币
我是帮主 发表于 2016-8-19 10:43
不用调用是吧。。。直接用js就可以是吧

对,你打开的新页面不是本地的吗,本地的再用openframe打开外部url就可以了,你试试看
7
帖子
0
勋章
32
Y币
无邪 发表于 2016-8-19 10:46
对,你打开的新页面不是本地的吗,本地的再用openframe打开外部url就可以了,你试试看 ...

是这样写的吗?

  1. <script type="text/javascript">
  2. api.openFrame ({   
  3.             name: 'to1',  
  4.             url: 'http://www**.**',  
  5.             rect:{  
  6.                 x:0,   
  7.                 y: 0,   
  8.                 w:'auto',   
  9.                 h:'auto'   
  10.             },  
  11.             bounces: false,
  12.             delay:200   
  13.         });

  14. </script>
复制代码
15
帖子
2
勋章
2万+
Y币
我是帮主 发表于 2016-8-19 10:43
不用调用是吧。。。直接用js就可以是吧

是的不需要调用直接使用api.openFrame({
    name: 这里给当前打开的页面一个别名(不能重复),
    url: 'http://www**.**/wap/',
    rect: {
        x: 0,
        y: 0,
        w: 'auto',
        h: 'auto'
    },
    bounces: true
});
就这样就可以了,然后你每个按钮可以全部调用一个方法,然后传入不同的参数来进行控制
22
帖子
3
勋章
5045
Y币

恩,你可以同步测试看看
12下一页
您需要登录后才可以回帖 登录

本版积分规则