WebView에서 일부 Mac 개발을하고 있습니다. URL 단축키에 의해 단축 된 URL을 확장하고 확장 된 URL을 사용자에게 표시하려고합니다.Safari - 마우스를 올리면 XMLHTTPRequest를 통해 링크의 제목을 업데이트 하시겠습니까?
<a href="http://is.gd/xizMsr" onMouseOver="myFunction(this);">Here's a shortened link to google</a>
을 그리고 여기에 관련이있다 : 사용자가 내가 제목 툴팁 http://google.com이
내 링크 태그는 다음과 같습니다 표시 할 링크를 가리킬 때, 누구의 SRC 속성 http://is.gd/xizMsr에 설정되어있는 링크를 제공 XMLHttpRequest를 사용합니다 자바 스크립트, 제목
var myRequest;
var mousedOverElement;
var isLoading = false;
function myFunction(anObject) {
if (isLoading == false) {
isLoading = true;
mousedOverElement = anObject;
var link = anObject.getAttribute('href');
var encodedURL = encodeURI(link);
var url = 'http://is.gd/forward.php?format=simple&shorturl=' + encodedURL;
myRequest = new XMLHttpRequest();
myRequest.open("GET", url);
myRequest.onreadystatechange = onStateChange;
myRequest.send();
}
}
function onStateChange() {
if (myRequest.readyState==4) {
if (myRequest.status==200) {
mousedOverElement.setAttribute('title',myRequest.responseText);
}
isLoading = false;
}
}
을 확장 URL을 인출 한 후 업데이트 나 링크 위로 마우스를 이동 한 다음, title 속성이 제대로 설정되어 커서를 이동 중지,하지만 때 문제는, 툴팁이 표시되지 않습니다. 툴팁이 보이게하려면 다시 마우스를 움직여야합니다. 필자는 링크에서 커서를 움직여 다시 가져올 필요는 없지만 링크 위로 마우스를 가져간 채 몇 픽셀 만 이동하면 트릭을 수행 할 수 있습니다.
Safari에서 Web Inspector와 Javascript 디버거를 사용하여 제목이 올바르게 설정되어 있다는 것을 알고 있습니다. 사실, 링크를 가리키면 바로 "요소"탭에있는 DOM의 Web Inspector보기가 새 제목으로 업데이트됩니다. 그러나 마우스에서 손을 떼면 툴팁이 표시되지 않습니다.
여기서 가정 할 사항은 WebKit은 사용자가 마우스를 움직일 때 툴팁 만 표시한다는 것입니다. 커서가 움직이지 않는 경우에도 "깨우기"웹킷을 정렬 할 수있는 방법이 있습니까? 또는 title 속성에 의존하지 않고 내 자신의 DHTML-ish 마법으로 구현하는 것이 더 낫지 않습니까?
그래, 원하는 효과를 얻으려면 그런 식으로해야 할 것 같습니다. 이것이 Safari의 버그라고 생각합니다. 따라서 WebKit에서 야간 빌드가 어떻게 작동하는지 확인하고 필요할 경우 버그를 신고 할 것입니다. 나중에 업데이트됩니다. – bpapa