2010-06-10 47 views
1

我在我的網站上嵌入svg-graphic,我想使用javascript-commands來處理網站的其餘部分,它們是 svg - 雖然我不確定這是否可能。在svg中使用javascript函數處理svg外部的對象

讓我詳細說明: 我有一個世界地圖在svg中,我想點擊一個國家,這個點擊應該運行一個ajax調用並將這個國家的相關信息加載到html網站的div中,嵌入svg。

「onclick =」location.href ='xxx'「」重定向到各自的網站,這很好,但我寧願運行一個js函數,以ajax取得網站 - 但運行一個JavaScript函數在svg中似乎只適用於svg中定義的函數和元素,而不是在svg之外。

基本上可以通過svg中的js函數來操縱SVG之外的任何東西嗎?怎麼樣?

問候 基督教

回答

2

廣告的onclick = 「replaceLink( 'yourdata')」 到要啓動此功能,SVG與定義此功能的SVG對象:

function replaceLink(data) 
    { 
     parent.replaceLinkinHTML(data); 
    }; 

和添加replaceLinkinHTML函數到嵌入svg的html中,並且您可以輕鬆地從svg處理html頁面...

4

訣竅是,SVG是「窗口」的孩子而不是孩子的「window.document」像大多數事情一樣。如果你在SVG的腳本,通過使用

this.parent.document.getElementById("theIDYouWant") 

如果你在你的文檔的<head><body>標籤的腳本訪問的東西,你的文檔中,您可以通過使用類似的公約訪問SVG的東西

window.theIDofYourSVG.childNodes[theNumberOfTheThingInYourSVG] 
+0

我試着開始第二段「在你的文檔的頭或身體標記中有腳本」 – 2011-11-19 14:45:46