2009-04-22 74 views
1

看來,在IE8, 如果使用https協議的頁面需要導入.js文件,那麼.js文件也需要使用https協議。在IE8中使用http URL導入js文件在IE8中使用http URL

<script type="text/javascript" src="http://xxx/yourjs.js"></script> 

作品在所有的瀏覽器IE8除外

<script type="text/javascript" src="https://xxx/yourjs.js"></script> 

作品在所有瀏覽器

我使用的進口幾個.js文件一個用戶控件。這意味着如果一個頁面使用https協議,那麼我必須更改usercontrol,以便所有導入的.js文件都使用https協議。

你如何解決這個問題?
您如何評論此IE8行爲?

回答

3

對HTTPS

<script type="text/javascript" src="http://xxx/yourjs.js"></script> 

使用這個應該拋出了一個警告,在所有瀏覽器用戶 - 我期望IE8做相同的,但也許這是一個新的「功能」來靜靜地忽略它。

你應該使用相同的協議請求是上,或做不到這一點始終HTTPS(雖然這將是用戶比較慢,把你的服務器造成負擔)。

您可以指定沒有計劃的URL - 應該使用當前的一個(HTTP或HTTPS):

<script type="text/javascript" src="//xxx/yourjs.js"></script> 

編輯:找到參考說這是有效的:RFC 2396

relativeURI = (net_path | abs_path | rel_path) [ "?" query ] 

以 開頭的相對引用的兩個斜線字符被稱爲
網絡路徑引用,如 第3節中這樣的
引用很少被使用。

+0

使用「/xxx/yourjs.js」作爲src屬性肯定會起作用。 – 2009-04-22 11:12:49

0

你確定這是不是與使用混合內容的安全設置?

這可能是值得檢查您的瀏覽器設置,看看你正在運行的區域被設置爲。

說實話,我喜歡我去的網站,爲了保持一致,所以我想要通過https檢索您的JavaScript文件。

1

這是正確的行爲。您不希望非安全資源成爲安全頁面的一部分。在以前的IE版本中,顯示了一條警告,但我想這是因爲太多人只是說「繼續」而不知道其含義。現在的錯誤是無聲的。您可以調整您的安全設置,但這隻會修復您的瀏覽器(正如我所提到的,這不是一個好主意)。

確保您的頁面資源在您的安全頁面上都是安全的。 (圖片,Iframe資源,腳本......很多!)