本文目录一览:
- 1、如何处理前端js跨域问题
- 2、怎样用JS实现文件下载功能,求函数,代码
- 3、javascript 跨域调用js文件问题.....
- 4、js下载文件
- 5、如何用js实现点击按钮下载文件
- 6、怎样解决js读取xml文件跨域问题
如何处理前端js跨域问题
前端跨域的解决方法非常的多,简单的给你介绍一下吧。
iframe解决跨域,这种方法也比较常见
JSONP解决跨域,简单,易上手
postMessage解决跨域,使用了比较新H5 API,所以存在一定的兼容问题;
服务器代由访问,方法对前端影响不大,但是后台相对会麻烦很多。
希望对您有帮助吧~~
怎样用JS实现文件下载功能,求函数,代码
其实很简单, 在这个方法里面, 只要使用页面跳转, 将url指向文件地址, IE就会实现下载了
例如下载Upload 文件夹下的XX.doc,注意路径要对
function download()
{
location.href="../Upload/XX.doc";
}
javascript 跨域调用js文件问题.....
三种方法实现js跨域访问
1.基于iframe实现跨域
基于iframe实现的跨域要求两个域具有aa.xx.com,bb.xx.com这种特点,也就是两个页面必须属于一个基础域(例如都是xxx.com,或是xxx.com.cn),使用同一协议(例如都是 http)和同一端口(例如都是80),这样在两个页面中同时添加document.domain,就可以实现父页面调用子页面的函数,代码如下:
页面一代码:
html
head
script
document.domain = "xx.com";
function aa(){
alert("p");
}
/script
/head
body
iframe src="" id="i"
/iframe
script
document.getelementbyid('i').oncg = function(){
var d = document.getelementbyid('i').contentwindow;
d.a();
};
/script
/body
/html
页面二代码:
html
head
script
document.domain = "xx.com";
function a(){
alert("c");
}
/script
/head
body
/body
/html
这时候父页面就可以调用子页面的a函数,实现js跨域访问
2.基于script标签实现跨域
script标签本身就可以访问其它域的资源,不受浏览器同源策略的限制,可以通过在页面动态创建script标签,代码如下
var script = document.createElement('script');
script.src = "*.js";
document.body.appendChild(script);
这样通过动态创建script标签就可以加载其它域的js文件,然后通过本页面就可以调用加载后js文件的函数,这样做的缺陷就是不能加载其它域的文档,只能是js文件,jsonp便是通过这种方式实现的,jsonp通过向其它域传入一个callback参数,通过其他域的后台将callback参数值和json串包装成javascript函数返回,因为是通过script标签发出的请求,浏览器会将返回来的字符串按照javascript进行解析执行,实现了域与域之间的数据传输。
jquery中对jsonp的支持也是基于此方案
3.后台代理方式
这种方式可以解决所有跨域问题,也就是将后台作为代理,每次对其它域的请求转交给本域的后台,本域的后台通过模拟http请求去访问其它域,再将返回的结果返回给前台,这样做的好处是,无论访问的是文档,还是js文件都可以实现跨域
js下载文件
代码如下:
html
head
meta http-equiv="Content-Type" content="text/html; charset=gbk" /
titleJS实现下载文件/title
script language=JavaScript
function download(obj){
if(document.all.ifrm==null){
objIframe=document.createElement("IFRAME");
document.body.insertBefore(objIframe);
objIframe.outerHTML="iframe name=ifrm style='width:0;hieght:0' src="+obj.href+"/iframe";
re=setTimeout("download()",1)
}
else{
clearTimeout(re)
files=window.open(obj.href,"ifrm")
files.document.execCommand("SaveAs")
document.all.ifrm.removeNode(true)
}}
/script
/head
body
文档列表:请点出下载br/
a href="file01.doc" id="filelist" onclick="download();return false;" style="cursor:hand"文件1/a br/
a href="file02.pdf" id="filelist" onclick="download();return false;" style="cursor:hand"文件2/a
/body
/html
如何用js实现点击按钮下载文件
在按钮上写属性 onclick="函数名()" ,作用是绑定click事件
如
input type="button" onclick="Click()" value="Download" /
然后在脚本处写上对应的函数即可,在函数中跳转到相应的文件路径就行。如
function Click(){
window.location.href="文件的url地址";
}
怎样解决js读取xml文件跨域问题
js读取xml文件跨域 问题,可以使用以下几种方法:
1 通过jsonp跨域 : 在js中,我们直接用XMLHttpRequest请求不同域上的数据时,是不可以的。但是,在页面上引入不同域上的js脚本文件却是可以的,jsonp正是利用这个特性来实现的。代码如下:
2 通过修改document.domain来跨子域:有一个页面,它的地址是 , 在这个页面里面有一个iframe,它的src是, 很显然,这个页面与它里面的iframe框架是不同域的 ;document.domain就可以派上用场了,我们只要把 和 这两个页面的document.domain都设成相同的域名就可以了
3 使用window.name来进行跨域 : 每个页面对window.name都有读写的权限,window.name是持久存在一个窗口载入过的所有页面