/**********************************************************

     说明:跨域请求数据Javascript组件
----------------------------------------------------------
add by OceanHo 2015-4-13 18:18:14
**********************************************************/
; (function (window, undefined) { var _ap = function () {
}, _asyncID = 2048, _asyncType = "asynctype", _version = "1.5.0", _cbKey = "cb", _cb = ""; function addSc(url, cbAndParam) {
var script = createSc();
script.setAttribute("src", url + "?" + cbAndParam);
window.document.getElementsByTagName("head")[0].appendChild(script);
}; function delSc(id) {
var scripts = getSc();
for (var i = 0; i < scripts.length; i++) {
if (scripts[i].attributes["id"]) {
if (parseInt(scripts[i].attributes["id"].value) === parseInt(id)) {
remove(scripts[i]);
}
}
}
}; function remove(script) {
if ((script) && (script.parentNode)) {
script.parentNode.removeChild(script);
}
}; function clearSc() {
var scripts = getSc();
for (var i = 0; i < scripts.length; i++) {
remove(scripts[i]);
}
}; function getSc() {
var s1 = [];
var scripts = window.document.getElementsByTagName("script");
for (var i = 0; i < scripts.length; i++) {
if (scripts[i].attributes["async"]) {
if (scripts[i].attributes["async"].value === _asyncType) {
s1.push(scripts[i]);
}
}
}
return s1;
}; function createSc() { _asyncID++;
var script = window.document.createElement("script");
script.setAttribute("id", _asyncID);
script.setAttribute("async", _asyncType);
script.setAttribute("type", "text/javascript"); script.onload = script.onreadystatechange = function () { if (!this.readyState || this.readyState === "loaded" || this.readyState === "complete") { delSc(this.attributes["id"].value); script.onload = script.onreadystatechange = null;
}
}
return script;
} function waitDel(id, interval) {
window.setInterval(delSc(id), interval);
}; _ap.fn = _ap.prototype = {
constructor: _ap,
version: _version,
init: function (arg) {
return new _ap().constructor;
}, get: function (url, cbk, cb, param) {
if (!cb) cb = _cb;
if (!cbk) cbk = _cbKey;
var qs = this.map(',', param);
addSc(url, _cbKey + "=" + cb + "&" + qs);
}, getEasy: function (url, cb, param) {
if (!cb) cb = _cb;
var qs = this.map(',', param);
addSc(url, _cbKey + "=" + cb + "&" + qs);
}, getCustom: function (url, param) {
addSc(url, this.map(',', param));
}, map: function (split, params) {
var str, strs = [];
if (typeof params != "string") {
params = eval(params);
for (var p in params) {
strs.push(p + "=" + params[p])
}
str = strs.join(split);
} else {
str = param;
}
return str;
},
clear: function () { clearSc(); }
}; _ap.fn.init.prototype = _ap.fn; window.CrossLoad = _ap.fn.init(); })(window); // 使用 、
<script>
window.CrossLoad.getEasy("https://www.oceanho.com/common/chat/v2","ReciveMessageHandler",{}) function ReciveMessageHandler(msg){ }
</script>

script通过script标签跨域加载数据的更多相关文章

  1. jquery中ajax跨域加载

    今天学习ajax跨域加载,先来一段代码,异步加载的链接是爱奇艺的开源,我直接拿来用作测试 <!DOCTYPE html> <html lang="en"> ...

  2. jquery mobile 和phonegap开发总结之三跨域加载页面

    跨域加载 一要进行一定的配置见下面 $( document ).bind( "mobileinit", function() { // Make your jQuery Mobil ...

  3. RequireJS跨域加载html模版后被转成JS问题分析及解决

    问题描述 RequireJS跨域加载HTML模版失败,例如: 在a.com域名下请求CDN域名下的模版,text.js插件会把html文件转成html.js文件去加载,由于并没有生成html.js文件 ...

  4. chrome浏览器下用jQuery的load函数来跨域加载页面,响应状态status为(canceled)是什么情况? JSON和JSONP,也许你会豁然开朗,含jQuery用例

    http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery.html 问题来源:http://q.cnblogs.com ...

  5. JQuery和原生JS跨域加载JSON数据或HTML。

    前提:有时候需要在网页上,加载另一个网站上的数据.或者加载另一个网站上的一个页面.Js的Ajax请求不具备跨域功能,可以使用JQuery来实现. 网页端JS代码: $(function () { $. ...

  6. pdf.js跨域加载文件

    pdf.js一个基于Html的工具类,熟悉pdf.js的朋友们很清楚,pdf.js帮助我们做了很多事.尤其金融类网站会产生很多的报表.需要在线预览.pdf.js绝对是我们的首选 本地预览 在pdf.j ...

  7. flash 跨域加载 二次加载

    var url2:String = "http://thirdapp0.qlogo.cn/qzopenapp/fa5d80ebf9fc89aaa1d7ddb0e1b861e58d77b409 ...

  8. script标签跨域的缺点

    1,只支持GET,不支持其他例如:put,delete,post等 2,想拿到数据需要服务器端做出相应处理,必须在window域下面有对应的执行函数.例如:window.callbackHandler ...

  9. 使用script的src实现跨域和类似ajax效果

    在解决js的跨域问题的时候, 有多种方式, 其中有一种是利用script标签的src属性,因为这个属性是不受域名限制的,我们可以直接让src的这个链接指向跨域网站的一个接口, 这个接口返回的是js代码 ...

随机推荐

  1. VR社交软件测试-AltspaceVR

    该VR社交软件中的主界面主要分为,Events:事件:Activities:多人游戏:Words:别人创建的虚拟世界.进入游戏后可以进入场景与世界各地的人进行交谈,以虚拟3D人物的方式显示用户,具有较 ...

  2. hdu-2642 Stars---二维树状数组(细节处理)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2642 题目大意: B x y:将星星x y点亮 D x y:将星星x y熄灭 Q x1 x2 y1 ...

  3. python 3+djanjo 2.0.7简单学习(二)--创建数据库和模型

    我们紧接上次,这里将建立数据库,创建第一个模型提示:这里我们不需要去一直启动,django会在我们ctrl+s的时候自动刷新并启动服务,很方便吧  1.数据库配置 现在,打开 vote_mysite/ ...

  4. pyinstaller打包后的exe退出时,类中的__del__不执行问题

    关于pyinstaller打包后的exe退出时,类中的__del__不执行问题,完善中

  5. python生成xml文件

    先上代码: #!/usr/bin/env python3 # _*_ coding: utf-8 _*_ from xml.dom.minidom import Document def readFi ...

  6. PXE自动化安装CentOS6/7

    服务器为centos7 安装前准备:关闭防火墙和SELINUX 虚拟机准备第二块网卡,设置主机模式,关闭虚拟机网络配置中主机模式的DHCP功能,并设置静态IP nmcli c a con-name e ...

  7. Maven - pom.xml常用元素

    基本坐标信息:

  8. mac上配置java jdk环境

    访问Oracle官网 http://www.oracle.com,浏览到首页的底部菜单 ,然后按下图提示操作: 2.点击“JDK DOWNLOAD”按钮: 3.选择“Accept Lisence Ag ...

  9. keepalived实现nginx的高可用

    1.使用yum安装keepalived yum install keepalived -y 2.修改配置文件keepalived.conf 主服务器配置文件 global_defs { router_ ...

  10. zookeeper的搭建方法

    1.创建三台虚拟机分别在虚拟机上安装Ubuntu16.04Server版的系统. 2.首先选择配置好第一台虚拟机,使用命令vim /etc/hosts对该文件进行修改 3.将zookeeper-3.4 ...