本文目录一览:
- 如何处理前端js跨域问题
- 怎样用JS实现文件下载功能,求函数,代码
- javascript 跨域调用js文件问题.....
- js下载文件
- 如何用js实现点击按钮下载文件
- 怎样解决js读取xml文件跨域问题
如何处理前端js跨域问题
前端跨域的解决方法非常的多,简单的给你介绍一下吧。
- iframe解决跨域,这种方法也比较常见
- JSONP解决跨域,简单,易上手
- postMessage解决跨域,使用了比较新H5 API,所以存在一定的兼容问题;
- 服务器代由访问,方法对前端影响不大,但是后台相对会麻烦很多。 希望对您有帮助吧~~
怎样用JS实现文件下载功能,求函数,代码
其实很简单, 在这个方法里面, 只要使用页面跳转, 将url指向文件地址, IE就会实现下载了 例如下载Upload 文件夹下的XX.doc,注意路径要对
function download() {
location.href = "../Upload/XX.doc";
}
javascript 跨域调用js文件问题.....
三种方法实现js跨域访问
- 基于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').onload = function () { var d = document.getElementById('i').contentWindow; d.a(); }; </script> </body> </html>
这时候父页面就可以调用子页面的a函数,实现js跨域访问。<html> <head> <script> document.domain = "xx.com"; function a() { alert("c"); } </script> </head> <body> </body> </html>
- 基于script标签实现跨域
script标签本身就可以访问其它域的资源,不受浏览器同源策略的限制,可以通过在页面动态创建script标签,代码如下:
这样通过动态创建script标签就可以加载其它域的js文件,然后通过本页面就可以调用加载后js文件的函数,这样做的缺陷就是不能加载其它域的文档,只能是js文件,jsonp便是通过这种方式实现的,jsonp通过向其它域传入一个callback参数,通过其他域的后台将callback参数值和json串包装成javascript函数返回,因为是通过script标签发出的请求,浏览器会将返回来的字符串按照javascript进行解析执行,实现了域与域之间的数据传输。 jQuery中对jsonp的支持也是基于此方案。var script = document.createElement('script'); script.src = "*.js"; document.body.appendChild(script);
- 后台代理方式 这种方式可以解决所有跨域问题,也就是将后台作为代理,每次对其它域的请求转交给本域的后台,本域的后台通过模拟http请求去访问其它域,再将返回的结果返回给前台,这样做的好处是,无论访问的是文档,还是js文件都可以实现跨域。
js下载文件
代码如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title>JS实现下载文件</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;height: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文件跨域问题,可以使用以下几种方法:
- 通过jsonp跨域:在js中,我们直接用XMLHttpRequest请求不同域上的数据时,是不可以的。但是,在页面上引入不同域上的js脚本文件却是可以的,jsonp正是利用这个特性来实现的。
- 通过修改document.domain来跨子域:有一个页面,它的地址是,在这个页面里面有一个iframe,它的src是,很显然,这个页面与它里面的iframe框架是不同域的;document.domain就可以派上用场了,我们只要把和这两个页面的document.domain都设成相同的域名就可以了。
- 使用window.name来进行跨域:每个页面对window.name都有读写的权限,window.name是持久存在一个窗口载入过的所有页面。