2009-06-27 57 views
1

我有在頭調用的腳本,像這樣的頁面:歌劇:.js文件將不會加載

<script type="text/javascript" src="http://www.discoverfire.net/analytics/l/a.js"></script> 

(請注意,您將無法加載這個腳本,因爲它是本地DNSd作爲分期域)

非常簡單。

對於這種基本的方形功能,Firefox,IE,Chrome都沒有問題。

但是,Opera拒絕加載腳本。其中的任何變量或函數都是「未定義的」,在蜻蜓中,腳本標記顯示在DOM中,但「腳本」選項卡顯示「未找到腳本文件」。

我去谷歌和找到隨機頁面,他們的外部.js文件似乎工作得很好。

任何想法爲什麼歌劇恨我?有沒有我缺少的安全/ JavaScript的東西?

幾件事情,可能是相關的,但真的應該沒有什麼區別:

  • 腳本是比頁面不同的域。
  • 該腳本僅適用於本地網絡。該域名在本地用於分級,從網絡外部指向其他地方。 Opera是否具有祕密使用外部DNS服務器的設置?
  • 該腳本適用於所有其他瀏覽器。
  • 問題不在腳本內容中。我已經將它簡化爲一行,並且在Opera中不起作用。

更新:

OK,這個問題似乎是歌劇如何處理領域。

我已經將腳本移動到其他幾個域,並且它工作得很好。我已將它移到本地DNS域上的多個路徑,並且它不會在該域的任何地方工作。

這使我相信,問題在於Opera無法或無法從某個原因加載該域中的腳本。

奇怪的是,從域中加載頁面和其他資源似乎沒有問題,問題僅在於.js文件。

該域名已註冊,但已停放。我們在本地對DNS進行了DNS處理,因此我們可以將它用於分段/測試,這可能會讓Opera以某種方式與JS安全性相混淆。

雖然我可能是錯的 - 我真的不知道。如果其他人有一個,我很樂意聽到它。

更新2:

關於蜻蜓和錯誤控制檯/開發者工具,他們不說對劇本的任何東西。對於腳本中應該存在的變量和函數,有很多未定義的變量錯誤,但除此之外,沒有錯誤。奇怪的是,腳本標籤確實顯示在DOMM中,但是如果我點擊腳本標籤,它會顯示「找不到腳本」。

更新3:

沒有阻止的內容,所以我們至少可以排除設置。

+0

應...的script.js是什麼樣的路徑?你的意思是像「../script.js」這樣的相對路徑還是什麼? – jitter 2009-06-27 21:40:18

回答

1

你應該問在歌劇院論壇。我以前在Opera上遇到過一些問題,他們很快就回答了。

+0

嘿,好主意。 – Eli 2009-06-27 22:41:29

+0

我必須同意。我經常使用Opera,偶爾我的電源會閃爍,足以重置我的路由器。當發生這種情況時,我必須將系統重新插入/重新插入路由器,以便系統重新建立連接,以便Opera連接到路由器之外的任何設備。

這是我唯一強迫我這樣做的瀏覽器。 – joebert 2009-06-28 06:57:34

2

你可能想看看它的廣告攔截器是否阻礙了它。您的網址包含「分析」文字,可能是「阻止此」格式的一部分。我知道一些通過Opera的谷歌分析。一個簡單的測試可能是嘗試將您的.js移動到主機上的其他路徑。

+0

嗯,那可能是。雖然我沒有看到任何設置。我一定會看看 - 感謝這個主意! – Eli 2009-06-28 06:42:58

1

主機是否提供正確的MIME類型的JavaScript文件。這不是一個衆所周知的事實,但type=text/javascript屬性實際上被瀏覽器忽略,因爲它相信服務器正在指定正確的類型。

此外,MIME類型的text/javascript在JavaScript中實際上是錯誤的,實際的JavaScript MIME類型爲application/ecmascript(如果我沒記錯,它可能是application/javascript)。如果你不相信我,你應該有一個look here,我有更多的信息,並鏈接到道格拉斯克羅克福德視頻,他討論了MIME類型。

+0

我將不得不考慮這一點。我不認爲這是什麼原因導致了這個問題(見上面的編輯),但我一定會檢查並開始使用正確的啞劇。謝謝! – Eli 2009-06-28 06:44:01

2

您是否檢查過Opera的錯誤控制檯?工具>高級>錯誤控制檯 它應該提供有關爲什麼它不會加載或者是否存在某種其他錯誤的信息。

+0

我有。它根本就沒有在開發者工具中對腳本進行任何說明。它有很多未定義的變量錯誤,這些變量和函數應該來自腳本,但除此之外,沒有錯誤。奇怪的是,它顯示DOM中的腳本標籤,但是如果我點擊腳本選項卡,它會顯示「找不到腳本」。 – Eli 2009-06-28 20:51:58

+0

您是否嘗試過除去文件中的所有警告,以查看文件是否有問題? – 2009-06-28 22:11:32

2

就像雅各布建議的那樣,你應該檢查它是否被阻擋。要做到這一點:

  • 您的網頁
  • 選擇在上下文菜單
  • 在屏幕的右上角單擊「阻止內容」,點擊「詳細信息」按鈕
  • 你應該看到的URL被阻止當前頁面
1

我有類似的東西最近對 - 在外部服務器上戲就只是沒有運行腳本......也不如果我下載了它,並在它了本地主機。它只在將腳本標籤複製/粘貼到html頁面時纔會運行。

事實證明,該腳本是用UTF-16編碼的,這在某種程度上混淆了瀏覽器。當我將它轉換爲UTF-8時,一切運行良好。

所以,以防萬一,如果你仍然有問題,檢查出的編碼設置...

1

我有相同的問題,追平從本地主機/開發服務器加載腳本插入到頁面,在公共服務器上無效。我管理腳本在Opera中加載的唯一方法是將頁面副本保存到同一開發服務器上的一個位置,並使用該標記引用原始域以獲取頁面的.css和.js鏈接文件。這工作。看起來Opera不喜歡混合公共和本地主機域名,但是沒有抱怨地處理本地主機。

1

您所看到的可能是Opera針對所謂的「phish pharm」攻擊的安全預防措施:跨網絡保護。您不能混合來自公共服務器的內容和來自本地服務器的內容。

看一看我的答案在這裏的解決方法:

Opera won't load some JavaScript files