2013-07-26 40 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