JS IE11 Script5 拒绝访问 跨域

首先说一下背景:
现在正在做与其他平台的对接开发工作,现一级域名相同,二级域名不同,原产品可以正常的进行通讯访问,现对方平台内容链接放入到本系统中,出现了跨域问题,所以在基础页面上加入域限定,

<script type="text/javascript">
		try {
			document.domain="iuoooo.com";
		} catch(e){
			
		}
</script>

对方系统可以正常的展示,自己的系统在谷歌以及360的浏览器上也能正常访问,但是在IE11出现了跨域问题,console窗口也会有Script5:拒绝访问的提示。

出现问题的原因在于:使用插件artDialog.js,弹出页面,弹出的页面中有一个中转使用的一个jsp,问题就出现在这,在artDialog.js中进行初始化操作:

说明:下面的处理在没有进行上面的域限定的情况不存在这个问题。
在这里插入图片描述
tmpl会动态的加载src,在IE11中,页面还没有加载出来,在下面的initFn中就要初始化使用,执行到iwin,attacheEvent方法的时候抛出,Script5:拒绝访问,所以进行了特殊处理:

$.fn.dialog.open = function(url, options,isTop){
	var load, $iframe, iwin,
		opt = options,
		id = _name + 'Open',
		isWindowTop = isTop?isTop:'top',
		jumpFlag = url.indexOf("/common/djframe.htm")>-1;
		var temlUrl = jumpFlag?url:CTX+"/tempJump.jsp";
		// 判断是否是IE浏览器
		var isIE = false;
		if (!!window.ActiveXObject || "ActiveXObject" in window){
			isIE = true;
		}else{
			isIE = false;
	  	}
	  	//IE 浏览器进行特殊的处理
		var tmp = !isIE ?'<iframe class="' + id + '" src="<%=url%>" frameborder="0" allowtransparency="true"></iframe>':'<iframe class="' + id + '" id="'+id+'" frameborder="0" allowtransparency="true"></iframe>';
		
		data = {
			//window: 'top',
			window: isWindowTop,
			content: {url: temlUrl},
			tmpl: tmp,
			initFn: function(here){
				var api = this;
                $iframe = $('iframe', api.ui.content[0]);
                // IE浏览器特殊处理,这样做,主要是因为下面要调用这个内容,动态的填充渲染
				if(isIE){
					var con = '<form name="form1" id="form1" action="" method="post"><div id="param"></div></form>';
					$iframe[0].contentDocument.documentElement.innerHTML = con;
				}
				
				iwin = $iframe[0].contentWindow;
				if(!jumpFlag){
					var size = url.indexOf("?");
					var realUrl = "";
					var param = "";
					if(size!=-1){
						realUrl = url.substring(0,size);
						param = url.substring(size+1); 
					}else{
						realUrl = url;
					}
					var iwin1 = $iframe[0];
	                iwin1.setAttribute("data-xUrl",realUrl )
	    ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值