起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2006|回复: 7

[结贴] 模式4判断cordova插件是否加载完成

[复制链接]

10

主题

40

帖子

62

积分

初级会员

Rank: 2

积分
62
QQ
发表于 2017-12-6 15:06:36 | 显示全部楼层 |阅读模式
我在页面的顶部写下如下代码
<script src="/cordova.js"></script>
    <script>
        var hasCordova = false;
        document.addEventListener('deviceready', function () {
            hasCordova = true;
            alert(hasCordova);
        }, false);
    </script>

当我重复打开这个页面的时候,这段代码中的alert并不是每次都执行。意思是cordova有时候会加载不成功吗?这个该怎么解决呢?
发表于 2017-12-6 15:43:20 | 显示全部楼层
这个事件是 设备初始化完成!  每次APP启动的时候执行一次! !
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

10

主题

40

帖子

62

积分

初级会员

Rank: 2

积分
62
QQ
 楼主| 发表于 2017-12-6 16:04:44 | 显示全部楼层
liangyongfei 发表于 2017-12-6 15:43
这个事件是 设备初始化完成!  每次APP启动的时候执行一次! !

我有好几个用iframe打开的页面需要用到这个cordova插件呀,我不得在每个页面当中引用吗?然后引用了之后不是得判断一下的吗?
回复 支持 反对

使用道具 举报

10

主题

40

帖子

62

积分

初级会员

Rank: 2

积分
62
QQ
 楼主| 发表于 2017-12-6 17:44:56 | 显示全部楼层
liangyongfei 发表于 2017-12-6 15:43
这个事件是 设备初始化完成!  每次APP启动的时候执行一次! !

我将父级页面当中的
<script type="text/javascript" src="/cordova.js"></script>

这个去掉之后,在iframe打开的页面当中使用就正常了,在父级当中加上的话就是有时候灵,有时候不灵的!
回复 支持 反对

使用道具 举报

10

主题

40

帖子

62

积分

初级会员

Rank: 2

积分
62
QQ
 楼主| 发表于 2017-12-6 18:49:14 | 显示全部楼层
liangyongfei 发表于 2017-12-6 15:43
这个事件是 设备初始化完成!  每次APP启动的时候执行一次! !

您好,请教您一个问题。我现在遇到的问题是这样的,我有一个主页,主页的其他页面都是通过iframe打开,然后将主页盖住,这样的。当我的父级没有引入“<script type="text/javascript" src="/cordova.js"></script>”时,我在直接的子页面当中引入“<script type="text/javascript" src="/cordova.js"></script>”,然后用下边的代码检测了一下。
var hasCordova = true;
document.addEventListener('deviceready', function () {
    hasCordova = true;
    alert(hasCordova);
}, false);

我打开的直接子页面,每个都是可以弹出“alert(true)”的。但是当我的父级引入了"<script type="text/javascript" src="/cordova.js"></script>"时,
回复 支持 反对

使用道具 举报

10

主题

40

帖子

62

积分

初级会员

Rank: 2

积分
62
QQ
 楼主| 发表于 2017-12-6 18:56:31 | 显示全部楼层
liangyongfei 发表于 2017-12-6 15:43
这个事件是 设备初始化完成!  每次APP启动的时候执行一次! !

您好,请教您一个问题。我现在遇到的问题是这样的,我有一个主页,主页的其他页面都是通过iframe打开,然后将主页盖住,这样的。当我的父级没有引入“<script type="text/javascript" src="/cordova.js"></script>”时,我在直接的子页面当中引入“<script type="text/javascript" src="/cordova.js"></script>”,然后用下边的代码检测了一下。
    var hasCordova = true;
    document.addEventListener('deviceready', function () {
    hasCordova = true;
    alert(hasCordova);
}, false);

我打开的直接子页面,每个都是可以弹出“alert(true)”的。但是当我的父级引入了"<script type="text/javascript" src="/cordova.js"></script>"时,父级页面时肯定可以弹出“alert(true)”的,但是子页面的话就是有时候可以弹出有时候不弹出的,hasCordova的值就是false。就是只要利用iframe嵌套使用“<script type="text/javascript" src="/cordova.js"></script>”的话就出现了问题。
回复 支持 反对

使用道具 举报

发表于 2017-12-7 11:05:01 | 显示全部楼层
865768338 发表于 2017-12-6 18:56
您好,请教您一个问题。我现在遇到的问题是这样的,我有一个主页,主页的其他页面都是通过iframe打开,然 ...

iframe 和 外层父页  是同 一个域名的资源吗?  
是相同域就可以引用,域不一样应该引用不了的!
建议使用父页面和子页面相互调用的方式去调用corodva插件吧!  可以直接去获取父中的变量值进行判断!
一个值修改就行了!不用每个iframe 都存在这个值!

http://docs.wex5.com/wex5-ui-question-list-2012/
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

10

主题

40

帖子

62

积分

初级会员

Rank: 2

积分
62
QQ
 楼主| 发表于 2017-12-7 15:48:25 | 显示全部楼层
liangyongfei 发表于 2017-12-7 11:05
iframe 和 外层父页  是同 一个域名的资源吗?  
是相同域就可以引用,域不一样应该引用不了的!
建议使 ...

非常感谢您的支持,我将方法全部写在了最顶层的页面当中,然后调用的时候利用window.top.****来调用的,问题已经解决了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-17 16:29 , Processed in 0.061386 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表