2013-06-26 64 views
4

我知道它違反Google Maps API ToS以刪除覆蓋地圖底部的Google品牌或ToS鏈接,但我正在使用地圖API來顯示視頻遊戲地圖,而Google徽標鏈接到主要Google地圖網站的方式是,它會以與當前我的視圖相同的世界座標將您發送到真實世界地圖遊戲中的地圖,對於這個用例來說完全沒有意義。有什麼方法可以通過點擊Google徽標來禁用Google地圖鏈接?我已經看到了用於刪除徽標的CSS示例,但鏈接仍然存在。我甚至不關心有沒有這個標誌,爲了ToS,我寧願把它留在那裏,但是有什麼辦法可以禁用這個鏈接嗎?谷歌地圖API v3刪除「點擊在谷歌地圖上查看此區域」鏈接

+2

這個問題似乎是無關緊要的,因爲它涉及第三方應用程序的服務條款。任何人都不應該推薦法律建議。 –

+4

我並不是在尋找關於我希望做什麼的合法性的法律建議,我只是在尋求如何實現它的技術建議。如果有的話,我會處理法律後果。 – qwertymodo

回答

4

你總是可以使用JavaScript來使鏈接什麼也不做地圖加載之後:

var anchors = document.getElementsByTagName('a'), 
    l = anchors.length, 
    i, 
    a; 

for (i = 0; i < l; i++) { 
    a = anchors[i]; 
    if (a.href.indexOf('maps.google.com/maps?') !== -1) { 
     a.title = ''; 
     a.onclick = function() { return false; }; 
    } 
} 

你可能必須重做此圖時被改變(所以你不緩存錨標記不必每次搜索它)。

+0

真棒,這很好。有沒有什麼方法可以去除鏈接的實際內容,以便預期的目標網址不會顯示在瀏覽器的左下角(顯然,瀏覽器會有所不同,但大多數瀏覽器會在您懸停時顯示目標網址一條鏈接)。這確實禁用了鏈接,所以你不能點擊它,並且刪除懸停文本,所以在功能上,這是我所需要的,如果可能的話,刪除鏈接目標也會很好。 – qwertymodo

+0

@qwertymodo只需將href設置爲無 - 儘管如此,因爲它仍然是一個超鏈接,您只需在當您懸停時顯示當前網址即可。 – RobH

+0

謝謝,這工作完美。 – qwertymodo

0

您可以掛接到地圖的「空閒」事件,然後使用jQuery刪除這樣的鏈接:當然

google.maps.event.addListenerOnce(map, 'idle', function (e) { 
    $('a[title="Click to see this area on Google Maps"]').remove(); 
}); 

這將打破,如果他們改變了這一切是爲定義的文本title屬性,所以也許別人可以建議一個更好的選擇器 - 例如,看看href的一部分。

不管這樣的事情是否會違反我無法評論的使用條款。