2012-08-30 79 views
1

我正在使用簡單的Jquery腳本在所有外部鏈接上強制使用target="_blank"。問題是它在新窗口中打開子域。我想調整這段代碼,以便在同一個瀏覽器會話中允許子域名與強制新窗口。創建一個例外,用於在新窗口中打開外部鏈接

例如,如果我的網站位於http://pixeltest.com,並且我有鏈接到http://test.pixeltest.com,那麼會在新窗口中打開。

驗證碼:

$("a").filter(function() { 
    return this.hostname && this.hostname !== location.hostname; 
}).attr('target', '_blank'); 

我如何能做到這一點有什麼想法?

回答

1

變化

return this.hostname && this.hostname !== location.hostname; 

return this.hostname && this.hostname.substr(this.hostname.indexOf('.')) !== location.hostname.substr(location.hostname.indexOf('.')); 

這應該只有第一點比較後的一切。

+0

如果沒有「點」表示它不是一個子域,而是一個正常的外部鏈接,該怎麼辦?它仍然在這種情況下工作? – JCHASE11

+0

啊,是的,如果沒有'www',這可能會變得棘手。已經包括了。你將不得不做一些擺弄代碼的工作,以確保它在所有用例中都能正常工作,也許只有在主機中包含多個點時才應用上述代碼。 – dqhendricks

+0

似乎對我工作很好....感謝 – JCHASE11

相關問題