Appcan跨域交互
案例1,sina微博登录,没有插件,因此采用web方式,我首先打开https://api.weibo.com/oauth2/authorize……,然后我想增加
一个取消按钮:
1 首先打开sina
appcan.frame.open(
{
id:"loginsina",
name:"loginsina",
url:url,
left:0,
top: 0,
change:function(index,res){ }
}
); sinaInt = setInterval('addSinaCloser()', 500);//检测sina加载并增加按钮
2 检测sina加载并增加按钮:
function addSinaCloser(){
try{
if(openingSina++>=30){
clearInterval(sinaInt);
clearTimeout(chkSinaTo);
appcan.frame.close({name:"loginsina"});
Alert('操作超时,请检查网络后重试','网络错误');
rm();
return;
}
msg('加载中('+openingSina+')……');
logc("Try addSinaCloser");
var js='uexLog.sendLog("addSinaCloser ing ... ");if(!document.getElementById("myCloser")){var o = document.createElement("div");o.id="myCloser";\
o.innerHTML = \'<div class="btns login_btn" style="background-color: #eee;"><a href="#" node-type="submit" action-type="submit" tabindex="6" class="btnP" style="background-color: transparent; background-image: none; border: 0 none; text-align: center; width: 6.5em;box-shadow:none;color:#f00" onclick="uexWindow.close(-1, 500);">取 消</a></div>\';\
o.className = \'btns login_btn\';\
var node=document.getElementById("outer").firstChild;\
document.getElementById("outer").insertBefore(o, node);\
uexWindow.evaluatePopoverScript("root","content_login","callBySinaPage();");\
}';
exeFrameJs(js, 'loginsina');
//appcan.frame.evaluateScript('content_login','content_login',js);
}catch(e){
alert("f1 e:"+e)
}
}
接着sina跳回到我的网站上的sina.php,处理成功后,回掉本地 处理函数:
<script>
try{
window.uexOnload = function(){//因为没有引入appcan.js,所以只能用uexWindow
uexLog.sendLog("logined , log from sina.php");
uexWindow.evaluatePopoverScript('', 'content_login', 'loginBack(<?php echo json_encode($data); ?>)');
setTimeout('uexWindow.close(15,500);', 500);
} //uexLog.sendLog("logined , log from sina.php"); ;
}catch(e){
alert(e)
}
</script>
Appcan跨域交互的更多相关文章
- js跨域交互之jsonp - 看完就能让你了解jsonp原理 (原)
跨域? 跨域的安全限制都是对浏览器端来说的,服务器端是不存在跨域安全限制的. 同源策略? 一般来说 a.com 的网页无法直接与 b.com的服务器沟通, 浏览器的同源策略限制从一个源加载的文档或脚本 ...
- [转载]解决flash与js交互、flash跨域交互、flash跨域提交
http://blog.csdn.net/andyxm/article/details/5219919 我们引用本地flash,实现flash与js双向交互. function thisMovie(m ...
- 封装一个postMessage库,进行iframe跨域交互
这是近期个人在开发chrome插件时的其中一个小总结.还有很多没有总结出来.因为目前插件还在迭代中,(herry菌插件,用于B站C站),属于个人业余的一个小项目.还有很多功能没有实现,以及还需要再看能 ...
- MVC+Jsonp实现跨域交互
一.认识Jsonp JSONP是一个非官方的协议,它允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域访问(这仅仅是JSONP简单的实现形式 ...
- 可以链接不同源的资源的html元素(能实现跨域)
可以链接不同源的资源的html元素(能实现跨域): img.script.css.video.audio.object.embed.applet.@font-face.frame.iframe等. ( ...
- js中各种跨域问题实战小结(一)
什么是跨域?为什么要实现跨域呢? 这是因为JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象.也就是说只能访问同一个域中的资源.我觉得这就有必要了解下javascript中的同源策略 ...
- JS中的跨域问题
一.什么是跨域? 1.定义:跨域是指从一个域名的网页去请求另一个域名的资源.比如从www.baidu.com 页面去请求 www.google.com 的资源.但是一般情况下不能这么做,它是由浏览器的 ...
- 跨域的根本原因:JavaScript 的同源策略
摘自:https://blog.csdn.net/liubo2012/article/details/43148705 同源策略限制了一个源(origin)中加载文本或脚本与来自其它源(origin) ...
- js中各种跨域问题实战小结
什么是跨域?为什么要实现跨域呢? 这是因为JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象.也就是说只能访问同一个域中的资源.我觉得这就有必要了解下javascript中的同源 ...
随机推荐
- MVC筛选自定义属性下拉表
MVC筛选自定义属性下拉表 string CompanyId = ""; CompanyId = ManageProvider.Provider.Current().Company ...
- Linq To Sqlite 一一二二
说在前头 之所以写下这些文字,主要是因为使用LINQ的同志们都觉它的美好(至于有多美好,各位心里知道,我就不在描述了,如果你是你还不了解LINQ,园子里有大把的文章),微软老哥只提供了自家的SQLSe ...
- Account Team使用说明
Account Team Account Team 以下简称客户小组. 背景介绍 帐户是与您的业务相关的公司和组织,每个帐户都存储了商家名称.地址和电话号码等信息.可以针对每个帐户存储相关的联系人. ...
- CSS3响应式布局之弹性盒子
CSS3弹性盒模型可以轻松的创建自适应浏览器流动窗口的布局或自适应字体大小的布局.同时该盒子决定了一个盒子在其他盒子的分布方式,及如何处理可用的空间. 自己写了一个弹性盒子的demo: 主要HTML代 ...
- 用hashMAP或ArrayList解决recylerView中checkbox的选择错乱问题。
//这个监听一定要放在checkbox初始化的方法之前,否则无效.是因为滑动的时侯会重新给checkbox赋值造成的.holder.cbFileSel.setOnCheckedChangeListen ...
- Response.Clear()和Response.ClearContent()区别
Response.Clear()方法 Clear方法删除所有缓存中的HTML输出.但此方法只删除Response显示输入信息,不删除Response头信息. Response.ClearContent ...
- "Resuming debugger: error during debugging loop: TypeError: firstViewRangeElement is null"
翻译过来:“重启调试器:错误调试期间循环:TypeError:firstViewRangeElement为空” 写了一个项目,其中使用到了上传图片的插件,在本地上传图片一切正常,发布到服务器却不正常了 ...
- Apache Solr 访问权限控制
Current state of affairs SSL support was added in version 4.2 (SolrCloud v4.7). Protection of Zookee ...
- linux下route命令使用实战
配置路由表: 第一步: sudo route add -net 172.30.6.0 netmask 255.255.255.0 eth0 执行后可以使用命令route -n查看,查看内容如下: 17 ...
- IE浏览器bug罪魁祸首--hasLayout
IE浏览器一直都是前端程序员最头疼的,IE的表现与其他浏览器不同的原因之一就是,显示引擎使用一个称为布局(layout)的内部概念. 认识hasLayout--haslayout是Windows In ...