簡體   English   中英

IE8不允許JavaScript引用,但IE9允許嗎?

[英]IE8 does not allow javascript reference, but IE9 does?

我編寫了一個小部件,其中包含一個站點上另一個站點上的javascript。 代碼是:

<script type="text/javascript" src="http://www.easionline.com/min/?f=widget.js"></script> 

在IE9中,所有內容都能完美顯示,但是在IE8中,出現此錯誤:

Webpage error details
User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2;
.NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0;
InfoPath.2)

Timestamp: Fri, 13 Jul 2012 07:20:30 UTC

Message: Access is denied.

Line: 7
Char: 73
Code: 0
URI: http://www.easionline.com/min/?f=widget.js

有人知道IE8為什么會給我一個消息被拒絕的問題嗎? 如果要查看實現了該小部件的站點,請訪問http://www.ham.co.za

如果執行時沒有縮小:

<script type="text/javascript" src="http://www.easionline.com/widget.js"></script> 

我收到此錯誤:

Webpage error details

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2;
.NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0;
InfoPath.2)

Timestamp: Fri, 13 Jul 2012 07:49:41 UTC
Message: Access is denied.

Line: 98
Char: 3
Code: 0
URI: http://www.easionline.com/widget.js

與錯誤行說:

96: var ajaxUrl = site_root+"ajax/widget/"+affid+"/"+category+"/"+numproducts;
97: 
98: obj.open("GET",ajaxUrl,true);
99: obj.send(null);

請注意,出於各種原因,我正在避免使用Jquery執行此任務。 因此,問題實際上可以歸結為:為什么此ajax調用在IE9中有效,但在IE8中無效?

這解決了我的問題: 在IE上拒絕訪問jQuery腳本

基本上,IE需要您使用XDomainRequest而不是XHR。 所以我更換了:

obj=pullAjax();
  obj.onreadystatechange=function() {
    if(obj.readyState==4) {
        // etc
    }
}
obj.open("GET",ajaxUrl,true);
obj.send(null);

帶有:

xdr = new XDomainRequest(); 
xdr.onload=function()
{
    // etc
}
xdr.open("GET", thisUrl); 
xdr.send([data]); 

...但是僅適用於IE。 我必須使用Javascript來檢測它是否是IE,因為我無法在該特定項目中使用jQuery。 所以我用了這個:

var browserName=navigator.appName; 
if (browserName=="Microsoft Internet Explorer") ...

src: http//www.pageresource.com/jscript/jbrowse.htm

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM