同樣的問題here但我需要去當地的URL在Firefox轉到本地網址使用JavaScript
我試着用這樣的代碼
var url = "file:///E:/Test/Test.htm";
window.location.href = url;
但ID沒有工作。試圖去window.location = url;
,並試圖與url = "file://E:/Test/Test.htm";
(雙「/」而不是三倍「/」),仍然無法正常工作。
感謝
同樣的問題here但我需要去當地的URL在Firefox轉到本地網址使用JavaScript
我試着用這樣的代碼
var url = "file:///E:/Test/Test.htm";
window.location.href = url;
但ID沒有工作。試圖去window.location = url;
,並試圖與url = "file://E:/Test/Test.htm";
(雙「/」而不是三倍「/」),仍然無法正常工作。
感謝
當我試試這個:
window.location.href = "file:///C:/Users/Cerbrus/Documents/SomeFile.js"
(是的,這是一個有效的路徑。)
鉻拋出我這個錯誤:
Not allowed to load local resource: file:///C:/Users//Documents/File.js
這是因爲JavaScript無權訪問本地個文件(由於它被沙箱化),並且您正在使用JavaScript設置新的網址。
「SandBoxed」意味着一項技術限制了(或沒有)一定範圍之外的訪問權限。在瀏覽器的情況下,這意味着頁面上運行的代碼無法訪問系統上的文件(否則,只需查看用戶的文件系統就可以輕鬆「竊取」數據)。
然而,
說,我有2個文件:
C:/Test/Test.htm
C:/Test/Test1.htm
Test.htm
只包含這個:
<script>
window.location = "file:///C:/Test/Test1.htm";
</script>
這實際上會重定向到Test1.htm
,因爲目標文件與源文件所在的域相同。
我猜它不允許從JavaScript
加載本地資源除非你有一個本地的HTTP服務器上運行:
var url = "http://localhost/MySite/Default.aspx";
window.location.href = url;
它將工作
(旁註:我並不完全相信「[同源政策](https://developer.mozilla.org/en-US/docs/JavaScript/Same_origin_policy_for_JavaScript)」在這裏不起作用,因爲我們'重新也改變協議爲'文件:'。) – Cerbrus
真棒回答!所以這個腳本不能從託管的網頁上運行,但它可以從本地的htm文件運行。但Bookmarklet怎麼樣?我需要一個小書籤中的腳本。沒有爲我工作,但Bookmarkets是本地的,這是什麼原因?並感謝其他回答的人。 – BearCode
這似乎並不奏效,@BearBear:'javascript:(function(){window.location =「file:/// C:/Test/Test1.htm」;}());' < - 這給出了同樣的錯誤。我在猜測我提到的Test.htm示例,因爲源文件已經在本地了,所以'沙箱中包含'file:/'。 –
Cerbrus