2013-07-26 44 views
0

我正在使用HTML5畫布和KineticJS在屏幕中間畫幾個形狀的主頁上工作,但我遇到了試圖向每個形狀添加超鏈接的包版。我的代碼迄今(不工作)是:如何將超鏈接添加到KineticJS畫布中的形狀?

midHexPoly.on('mouseover', function() { 
     document.body.style.cursor = 'pointer'; 
     }); 

midHexPoly.on('mouseout', function() { 
     document.body.style.cursor = 'default'; 
     }); //this works, the mouse changes to a pointer on 
      //mouseover, and back on mouseout 

var linkTest = "http://www.google.com" 
midHexPoly.on('click', function() { 
    window.open = linkTest; 
}); 

多的谷歌搜索後,我似乎無法找到這個問題的任何決議,似乎沒有成爲一個功能Kintetic爲重定向或添加超鏈接。
有什麼辦法解決這個問題嗎?謝謝!

回答

1

window.open是一種方法,所以你應該這樣稱呼它:window.open(linkTest);。您會發現更多信息,例如w3schools上的參數。我建議使用第二個參數(名稱)來確保所有鏈接將在同一個新窗口中打開。

如果您想要在與您的主頁相同的窗口中打開所有鏈接,您可以使用這段代碼而不是window.openlocation.assign(linkText);

如果這些不起作用,請確保通過在回調函數中添加控制檯日誌來觸發click事件,例如,

midHexPoly.on('click', function() { 
    console.log('clicked on midHexPoly'); 
}); 

midHexPoly.on('click', function() { 
    alert('clicked on midHexPoly'); 
}); 
+0

這適用於大部分的時候我離開了(名稱),阿根廷,但是當我把它作爲如下:window.open(linkTest,_self)不打開鏈接。這是有原因的嗎? (我使用chrome來測試這個)。編輯:沒關係,W3頁面並沒有說我必須把(名稱)放在單引號中。我的新代碼是:window.open(linkTest,'_ self') – RalphORama

+0

還有一個問題:當我嘗試做一些像window.open('blog.html',_self)時,它會嘗試從根目錄打開文件(file://macintosh%20hd/blog.html),而不是站點根目錄(file:// macintosh%20hd/Users/---/Desktop/---/final/final-final-canvas/blog。 HTML)。有沒有解決這個問題? – RalphORama