2013-07-26 3 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.open : location.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를) 그렇지 않습니다 링크를여십시오. 그 이유가 있을까요? (나는 이것을 시험하기 위해 크롬을 사용하고있다). 편집 : 신경 쓰지 마라, W3 페이지는 내가 (작은 따옴표로) (이름)을 써야한다고 말하지 않았다. 내 새로운 코드는 다음과 같습니다. window.open (linkTest, '_ self') – RalphORama

+0

한 가지 추가 문제 : window.open ('blog.html', _ self)과 같은 작업을 시도하면 루트 디렉토리에서 파일을 엽니 다. (file : // macintosh % 20hd/Users/---/Desktop/---/final/final-final-canvas/blog) 대신에 사이트 루트 (file : //macintosh%20hd/blog.html)를 사용하십시오. html). 이 문제가 수정 되었습니까? – RalphORama

관련 문제