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

     说明:跨域请求数据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. 缓存的set、getAndTouch一定要谨慎使用

    缓存的set.getAndTouch一定要谨慎使用. 很多人认为缓存在内存中性能良好,频繁更新,却不想机器的IO无法支撑,结果就是缓存成了系统的瓶颈.

  2. 在ABAP里取得一个数据库表记录数的两种方法

    方法1:使用函数EM_GET_NUMBER_OF_ENTRIES 这个函数使用起来很简单,只需要将想查询的数据库表名称维护进输入参数IT_TABLES: 上图说明这个函数支持批量操作,我查询的两张表名 ...

  3. while循环小例

    # 使用while 循环输入 1 2 3 4 5 6 8 9 10 n = 1 while n <= 10: if n == 7: pass else: print(n) n = n + 1 # ...

  4. 分享个谷歌浏览器下的一款插件PostMan

    用作POST GET调试非常好用 先下载谷歌浏览器 然后在应用里搜索安装即可

  5. 一个TCP的问题,所谓TCP面向连接的虚电路到底是怎么实现的?

    http://www.cskaoyan.com/thread-23715-1-1.html 今天我又查阅了一些资料,发觉一个问题,TCP所谓的面向连接的特性以及建立虚电路,与网络层虚电路服务好像有着本 ...

  6. 第十五章 函数————函数的递归、生成器send 、匿名函数

    1.生成器send方法 send的工作原理 1.send发生信息给当前停止的yield 2.再去调用__next__()方法,生成器接着往下指向,返回下一个yield值并停止 例: persons=[ ...

  7. Javascript与C#中使用正则表达式

    JavaScript RegExp 对象 新建一个RegExp对象 new RegExp(pattern,[attributes])           注: \d需要使用[0-9]来代替 参数 参数 ...

  8. MySQL工作经验

    以下是根据工作中遇到各种场景用到的一些Mysql用法,比较实用,基本是语法之外的一些东西. 修改账户密码 1.打开Mysql控制台,输入原密码: 2.输入以下语法:mysql> set pass ...

  9. Linux帮助都有哪几种,如何使用?

    帮助文件有2类,内置命令和外部命令. 其中内置命令就是shell内核自带的,因为shell当中自己要进行管理,那么就需要一些命令进行管理,不同的shell肯定有不同的shell命令,我们用type命令 ...

  10. PHP生成ZIP压缩文件

    PHP生成ZIP压缩文件 /* * 生成zip压缩文件 * $sourceDir:被压缩的文件夹或文件 * $outFileName:输出的压缩文件名称 * */ function createZip ...