2014-07-25 31 views
0

我的主頁URL是//本地主機:8090如果URL被改變它將運行的index.htmlmain.js重定向頁面回來,如果URL改變

//本地主機:8090/icons/sample.png。我必須將用戶重定向到前一頁// localhost:8090

我想:

main.js

if(window.location.href.indexOf("icons") > -1) 
{ 
    window.history.back(); 
} 

它不工作。該頁面僅顯示圖像。

+3

圖片無法運行Javascript。這個腳本在哪裏運行? – CodingIntrigue

+0

該請求正在打擊一個圖像資源,所以沒有js,把一個htaccess文件全部拒絕 –

+0

你想實現什麼?你想阻止訪問圖標目錄? – Emma

回答

3

在現代瀏覽器(IE8 +,FF3.6 +,Chrome)中,您只能在窗口上聆聽hashchange事件。

$(window).bind('hashchange', function() { 
    window.history.back(); 
/* things */ 
}); 

在一些舊的瀏覽器中,您需要一個定時器來持續檢查location.hash。如果您使用的是jQuery,則有一個插件可以完全實現這一點。

function hashHandler(){ 
this.oldHash = window.location.hash; 
this.Check; 

var that = this; 
var detect = function(){ 
    if(that.oldHash!=window.location.hash){ 
     window.history.back(); 
    } 
}; 
this.Check = setInterval(function(){ detect() }, 100); 
} 

var hashDetection = new hashHandler(); 

你是否在處理哈希變化事件。

+0

我只需要重定向,如果URL有'圖標'。因爲上面的代碼限制了所有的API調用。 – Hulk1991

0

嘗試以下操作:

RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?localhost.*$ [NC] 
RewriteRule \.(gif|jpg)$ - [F] 

返回403,如果你直接訪問圖像,但允許它們在網站上顯示。

注意:當你用圖像打開某個頁面並將該圖像的路徑複製到地址欄時,可能會看到該圖像,這僅僅是因爲瀏覽器的緩存,事實上該圖像尚未加載從服務器。

Credits to Ruslan Osipov